Commit f808ba387e81728b84ec73b29225d8729a04f0ef

Authored by yvan.ni
1 parent d4373af5

多促销的优化

packageE/pages/cart/cart2/cart2.js
@@ -151,6 +151,7 @@ Page({ @@ -151,6 +151,7 @@ Page({
151 yh_is_xz_yh:{},//优惠促销优惠券使用开关 151 yh_is_xz_yh:{},//优惠促销优惠券使用开关
152 152
153 }, 153 },
  154 +
154 onLoad: function (t) { 155 onLoad: function (t) {
155 wx.setNavigationBarTitle({ title: "填写订单", }) 156 wx.setNavigationBarTitle({ title: "填写订单", })
156 var th = this; 157 var th = this;
@@ -161,8 +162,7 @@ Page({ @@ -161,8 +162,7 @@ Page({
161 //清空is_pick_up 162 //清空is_pick_up
162 getApp().request.put("/api/weshop/useraddress/updatePickUp", { 163 getApp().request.put("/api/weshop/useraddress/updatePickUp", {
163 data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, 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,6 +355,8 @@ Page({
355 } 355 }
356 this.calculatePrice()//计算金额 356 this.calculatePrice()//计算金额
357 }, 357 },
  358 +
  359 +
358 //直接购买预存开启关闭 360 //直接购买预存开启关闭
359 prestore2() { 361 prestore2() {
360 let txt = 'bn_goods.yck_off'; 362 let txt = 'bn_goods.yck_off';
@@ -376,7 +378,6 @@ Page({ @@ -376,7 +378,6 @@ Page({
376 }else{ 378 }else{
377 this.calculatePrice2()//计算金额 379 this.calculatePrice2()//计算金额
378 } 380 }
379 -  
380 }, 381 },
381 //计算商品预存款前置方法------------------------------------ 382 //计算商品预存款前置方法------------------------------------
382 async beforAdvancesum(cartList) { 383 async beforAdvancesum(cartList) {
@@ -542,7 +543,7 @@ Page({ @@ -542,7 +543,7 @@ Page({
542 }); 543 });
543 }, 544 },
544 545
545 - //----------------展示页面,是再获取用户信息之后-------------- 546 + //---------------- 展示页面,是再获取用户信息之后 --------------
546 async show_page() { 547 async show_page() {
547 var th = this, ta = this.data.param; 548 var th = this, ta = this.data.param;
548 //获取用户预存款 549 //获取用户预存款
@@ -676,6 +677,37 @@ Page({ @@ -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 get_cart: function () { 712 get_cart: function () {
681 var th = this, app = getApp(); 713 var th = this, app = getApp();
@@ -715,14 +747,25 @@ Page({ @@ -715,14 +747,25 @@ Page({
715 //---是不是购买等级卡成功的返回---等级卡显示的判断--- 747 //---是不是购买等级卡成功的返回---等级卡显示的判断---
716 var is_card_back = getApp().globalData.is_card_back; 748 var is_card_back = getApp().globalData.is_card_back;
717 749
718 -  
719 //-- 判断组合购是总数量是不是存在 -- 750 //-- 判断组合购是总数量是不是存在 --
720 var no_zh_num={}; 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 for (var i = 0; i < carr.length; i++) { 766 for (var i = 0; i < carr.length; i++) {
723 var item1 = carr[i]; 767 var item1 = carr[i];
724 //把已经购买了多少见的内容填入 768 //把已经购买了多少见的内容填入
725 -  
726 var goodsbuynum = 0, promgoodsbuynum = 0; 769 var goodsbuynum = 0, promgoodsbuynum = 0;
727 //--要获得商品,该用户买了多少件,同步应用-- 770 //--要获得商品,该用户买了多少件,同步应用--
728 await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { 771 await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
@@ -1244,7 +1287,7 @@ Page({ @@ -1244,7 +1287,7 @@ Page({
1244 }, 1287 },
1245 1288
1246 1289
1247 - //-----获取立即购买的商品信息,入口---- 1290 + //-----单个商品购买的入口判断----
1248 get_buy_goods: function (e) { 1291 get_buy_goods: function (e) {
1249 var th = this; 1292 var th = this;
1250 var gg = to.get_b_now(); 1293 var gg = to.get_b_now();
@@ -1750,37 +1793,198 @@ Page({ @@ -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 var url = '/api/weshop/activitylist/listGoodActInfo2New'; 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 var req_d = { 1808 var req_d = {
1759 "store_id": os.stoid, 1809 "store_id": os.stoid,
1760 - "goods_id": gd.goods_id, 1810 + "goods_id": item1.goods_id,
1761 "user_id": user_id, 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 checkAddressList: function () { 1989 checkAddressList: function () {
1786 var t = this; 1990 var t = this;
pages/cart/cart/cart.js
@@ -8,6 +8,7 @@ var t = getApp(), @@ -8,6 +8,7 @@ var t = getApp(),
8 zh_calc = require("zh_calculate.js"), 8 zh_calc = require("zh_calculate.js"),
9 ladder_calc = require("ladder_calculate.js"); 9 ladder_calc = require("ladder_calculate.js");
10 var regeneratorRuntime = require('../../../utils/runtime.js'); 10 var regeneratorRuntime = require('../../../utils/runtime.js');
  11 +const e = require("../../../../utils/common.js");
11 12
12 13
13 Page({ 14 Page({
@@ -41,6 +42,7 @@ Page({ @@ -41,6 +42,7 @@ Page({
41 zuhe_map: {}, 42 zuhe_map: {},
42 zuhe_map_good: {}, 43 zuhe_map_good: {},
43 in_zhact_gdmap: {}, //不同门店参与同一活动的限购 44 in_zhact_gdmap: {}, //不同门店参与同一活动的限购
  45 + in_zhact_gdmap_gp: {}, //不同门店参与同一活动的限购,新版判断的时候
44 46
45 ladder_map: {}, //阶梯促销需要的map 47 ladder_map: {}, //阶梯促销需要的map
46 48
@@ -48,8 +50,220 @@ Page({ @@ -48,8 +50,220 @@ Page({
48 promgoods_list: {} 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 var a = this, 267 var a = this,
54 ee = a; 268 ee = a;
55 269
@@ -79,7 +293,6 @@ Page({ @@ -79,7 +293,6 @@ Page({
79 getApp().requestCardNum(this); 293 getApp().requestCardNum(this);
80 } 294 }
81 295
82 -  
83 var th = this; 296 var th = this;
84 this.setData({ 297 this.setData({
85 requestData: null, 298 requestData: null,
@@ -450,7 +663,6 @@ Page({ @@ -450,7 +663,6 @@ Page({
450 var g_arr = []; 663 var g_arr = [];
451 for (var i = 0; i < carr.length; i++) { 664 for (var i = 0; i < carr.length; i++) {
452 665
453 -  
454 //-- 清理购物车的选中状态 -- 666 //-- 清理购物车的选中状态 --
455 var url = '/api/weshop/cart/update'; 667 var url = '/api/weshop/cart/update';
456 getApp().request.put(url, { 668 getApp().request.put(url, {
@@ -495,8 +707,6 @@ Page({ @@ -495,8 +707,6 @@ Page({
495 var item = carr[i]; 707 var item = carr[i];
496 var good = item; 708 var good = item;
497 709
498 -  
499 -  
500 if (item.is_gift) { 710 if (item.is_gift) {
501 var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id; 711 var url = '/api/weshop/cart/del/' + oo.stoid + '/' + item.id;
502 getApp().request.delete(url, { 712 getApp().request.delete(url, {
@@ -550,82 +760,36 @@ Page({ @@ -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 var c_prom_type=0; 764 var c_prom_type=0;
556 var c_prom_id=0; 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 if (item.prom_type == 0 ) { 791 if (item.prom_type == 0 ) {
627 792
628 -  
629 var prom = null; 793 var prom = null;
630 var now = ut.gettimestamp(); 794 var now = ut.gettimestamp();
631 await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2New`, { 795 await getApp().request.promiseGet(`/api/weshop/activitylist/listGoodActInfo2New`, {
@@ -644,41 +808,20 @@ Page({ @@ -644,41 +808,20 @@ Page({
644 prom.push(a_item); 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 continue; 822 continue;
680 - }  
681 } 823 }
  824 +
682 } 825 }
683 826
684 827
@@ -699,7 +842,6 @@ Page({ @@ -699,7 +842,6 @@ Page({
699 }) 842 })
700 } 843 }
701 844
702 -  
703 //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着 845 //如果秒杀活动都去掉了,或者结束了,那么这个商品也没有必要留着
704 if (item.prom_type == 1) { 846 if (item.prom_type == 1) {
705 var prom = null; 847 var prom = null;
@@ -784,392 +926,7 @@ Page({ @@ -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 all_num += item.goods_num; 931 all_num += item.goods_num;
1175 item.original_img = oo.imghost + item.original_img; 932 item.original_img = oo.imghost + item.original_img;
@@ -1177,26 +934,9 @@ Page({ @@ -1177,26 +934,9 @@ Page({
1177 item.erpwareid = good.erpwareid; //要同步下线商品的id 934 item.erpwareid = good.erpwareid; //要同步下线商品的id
1178 item.shop_price = good.shop_price; //要同步下线商品的id 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 var pcid = item.pick_id; 941 var pcid = item.pick_id;
1202 var find = 0; 942 var find = 0;
@@ -1251,21 +991,6 @@ Page({ @@ -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 th.setData({ 995 th.setData({
1271 requestData: arr, 996 requestData: arr,
@@ -2157,12 +1882,6 @@ Page({ @@ -2157,12 +1882,6 @@ Page({
2157 1882
2158 } 1883 }
2159 1884
2160 -  
2161 -  
2162 - e.setData({  
2163 - [txt]: Number(!a.selected),  
2164 - });  
2165 -  
2166 if (a.prom_type == 3) { 1885 if (a.prom_type == 3) {
2167 e.data.duo_zp_num_arr = {}; 1886 e.data.duo_zp_num_arr = {};
2168 if (!a.selected) { 1887 if (!a.selected) {
@@ -2174,6 +1893,11 @@ Page({ @@ -2174,6 +1893,11 @@ Page({
2174 await e.check_prom_activity(i); 1893 await e.check_prom_activity(i);
2175 } 1894 }
2176 } 1895 }
  1896 +
  1897 + e.setData({
  1898 + [txt]: Number(!a.selected),
  1899 + });
  1900 +
2177 this.doCheckAll(); 1901 this.doCheckAll();
2178 } 1902 }
2179 }, 1903 },
@@ -2265,7 +1989,7 @@ Page({ @@ -2265,7 +1989,7 @@ Page({
2265 }, 1989 },
2266 1990
2267 //----------检查是否全选--------- 1991 //----------检查是否全选---------
2268 - doCheckAll: function () { 1992 + doCheckAll:async function () {
2269 var th = this, 1993 var th = this,
2270 tfeel = 0, 1994 tfeel = 0,
2271 t_num = 0, 1995 t_num = 0,
@@ -2274,11 +1998,19 @@ Page({ @@ -2274,11 +1998,19 @@ Page({
2274 car2 = this.data.service_data, 1998 car2 = this.data.service_data,
2275 all_num = 0; 1999 all_num = 0;
2276 2000
  2001 +
  2002 + th.data.zuhe_map={};
  2003 + th.data.zuhe_map_good={};
  2004 +
2277 //-- 购物车 -- 2005 //-- 购物车 --
2278 if (car && car.length > 0) { 2006 if (car && car.length > 0) {
2279 th.data.in_zhact_gdmap = {}; 2007 th.data.in_zhact_gdmap = {};
2280 for (var a = 0; a < car.length; a++) { 2008 for (var a = 0; a < car.length; a++) {
  2009 +
2281 var item = car[a].goods, is_s_sele = 1; 2010 var item = car[a].goods, is_s_sele = 1;
  2011 + //-- 先批量判断一下活动的类型,同时要同步跟新 --
  2012 + await th.cart_cx_group(item,a);
  2013 +
2282 var offline_price = 0; 2014 var offline_price = 0;
2283 var offline_num = 0; 2015 var offline_num = 0;
2284 for (var c = 0; c < item.length; c++) { 2016 for (var c = 0; c < item.length; c++) {
@@ -2405,6 +2137,7 @@ Page({ @@ -2405,6 +2137,7 @@ Page({
2405 }); 2137 });
2406 }, 2138 },
2407 2139
  2140 +
2408 //----------------------更新购物数量,加减,调用接口--------------------- 2141 //----------------------更新购物数量,加减,调用接口---------------------
2409 postCardList: function (t, item, pitem) { 2142 postCardList: function (t, item, pitem) {
2410 var e = this, 2143 var e = this,
@@ -4561,6 +4294,110 @@ Page({ @@ -4561,6 +4294,110 @@ Page({
4561 icon: 'none', 4294 icon: 'none',
4562 duration: 2000 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 \ No newline at end of file 4404 \ No newline at end of file
pages/cart/cart/zh_calculate.js
@@ -519,7 +519,89 @@ module.exports = { @@ -519,7 +519,89 @@ module.exports = {
519 } 519 }
520 } 520 }
521 return zhqty_bz_flag; 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 \ No newline at end of file 608 \ No newline at end of file
pages/goods/goodsInfo/goodsInfo.js
@@ -293,7 +293,6 @@ Page({ @@ -293,7 +293,6 @@ Page({
293 293
294 294
295 self = this; 295 self = this;
296 -  
297 //检查测肤 296 //检查测肤
298 getApp().check_skin_face(t, 0, gid); 297 getApp().check_skin_face(t, 0, gid);
299 298
@@ -1544,6 +1543,7 @@ Page({ @@ -1544,6 +1543,7 @@ Page({
1544 }) 1543 })
1545 // return userbuynum 1544 // return userbuynum
1546 }, 1545 },
  1546 +
1547 //优惠促销用户参与次数 1547 //优惠促销用户参与次数
1548 async getUserBuyPromNum_pre(prom_id){ 1548 async getUserBuyPromNum_pre(prom_id){
1549 var user_id=0 1549 var user_id=0
@@ -6978,6 +6978,7 @@ Page({ @@ -6978,6 +6978,7 @@ Page({
6978 } 6978 }
6979 } 6979 }
6980 }, 6980 },
  6981 +
6981 //-----显示优惠券的时候情况----- 6982 //-----显示优惠券的时候情况-----
6982 show_more_cx: function () { 6983 show_more_cx: function () {
6983 if (this.data.is_more_cx) { 6984 if (this.data.is_more_cx) {
@@ -7230,7 +7231,7 @@ Page({ @@ -7230,7 +7231,7 @@ Page({
7230 }) 7231 })
7231 }, 7232 },
7232 7233
7233 - //-- 获取默认的促销活动的默认活动 -- 7234 + //--- 获取默认的促销活动的默认活动 ---
7234 check_prom_custom(ind) { 7235 check_prom_custom(ind) {
7235 if(ind){ 7236 if(ind){
7236 if (!this.data.cx_prom_group.length) return 0; 7237 if (!this.data.cx_prom_group.length) return 0;