Commit f808ba387e81728b84ec73b29225d8729a04f0ef

Authored by yvan.ni
1 parent d4373af5

多促销的优化

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