From 4c98518416c9c4d1e91332945319015d57d6d292 Mon Sep 17 00:00:00 2001 From: gongfuxiang <2499232802@qq.com> Date: Thu, 22 Nov 2018 01:02:38 +0800 Subject: [PATCH] buy --- alipay/app.acss | 2 +- alipay/app.js | 2 +- alipay/pages/buy/buy.axml | 4 +- alipay/pages/buy/buy.js | 31 +++++++------ alipay/pages/cart/cart.axml | 2 +- alipay/pages/cart/cart.js | 43 ++++++++++++------- .../Api/Controller/BuyController.class.php | 40 ++++++++++++----- 7 files changed, 80 insertions(+), 44 deletions(-) diff --git a/alipay/app.acss b/alipay/app.acss index 56008a9f0..413304003 100755 --- a/alipay/app.acss +++ b/alipay/app.acss @@ -189,7 +189,7 @@ textarea { font-size: 32rpx; } .original-price { - color: #ccc; + color: #888; font-size: 26rpx; text-decoration: line-through; margin-left: 10rpx; diff --git a/alipay/app.js b/alipay/app.js index 63e19ff24..96d26b5fa 100755 --- a/alipay/app.js +++ b/alipay/app.js @@ -47,7 +47,7 @@ App({ // 请求地址 request_url: "https://demo.shopxo.net/", - //request_url: 'http://localhost/project/shopxo/service/', + request_url: 'http://localhost/project/shopxo/service/', // 基础信息 application_title: "ShopXO电商系统", diff --git a/alipay/pages/buy/buy.axml b/alipay/pages/buy/buy.axml index fcb016dfd..2ae78727e 100755 --- a/alipay/pages/buy/buy.axml +++ b/alipay/pages/buy/buy.axml @@ -1,4 +1,4 @@ - + @@ -19,7 +19,7 @@ - + {{item.title}} diff --git a/alipay/pages/buy/buy.js b/alipay/pages/buy/buy.js index 3be8cc0e5..cfb074988 100755 --- a/alipay/pages/buy/buy.js +++ b/alipay/pages/buy/buy.js @@ -5,7 +5,8 @@ Page({ buy_submit_disabled_status: false, data_list_loding_msg: '', params: null, - goods: [], + address_list: [], + goods_list: [], address: null, is_first: 1, address_id: 0, @@ -17,14 +18,14 @@ Page({ { my.alert({ title: '温馨提示', - content: '商品信息有误', + content: '订单信息有误', buttonText: '确认', success: () => { my.navigateBack(); }, }); } else { - this.setData({params: params.data}); + this.setData({ params: JSON.parse(params.data)}); // 删除地址缓存 my.removeStorageSync({key: app.data.cache_buy_user_address_select_key}); @@ -54,36 +55,38 @@ Page({ } } - var self = this; // 加载loding my.showLoading({content: '加载中...'}); this.setData({ data_list_loding_status: 1 }); + var data = this.data.params; + data['address_id'] = this.data.address_id; my.httpRequest({ url: app.get_request_url("Index", "Buy"), method: "POST", - data: {goods: this.data.params, address_id: this.data.address_id}, + data: data, dataType: "json", success: res => { my.hideLoading(); if (res.data.code == 0) { var data = res.data.data; - if(data.goods.length == 0) + if (data.goods_list.length == 0) { - self.setData({data_list_loding_status: 0}); + this.setData({data_list_loding_status: 0}); } else { - self.setData({ - goods: data.goods, - total_price: data.total_price, - address: data.address, - address_id: ((data.address || null) == null) ? 0 : data.address.id, + this.setData({ + goods_list: data.goods_list, + address_list: data.user_address_list, + total_price: data.base.total_price, + address: data.base.address, + address_id: ((data.base.address || null) == null) ? 0 : data.base.address.id, data_list_loding_status: 3, }); } } else { - self.setData({ + this.setData({ data_list_loding_status: 2, data_list_loding_msg: res.data.msg, }); @@ -95,7 +98,7 @@ Page({ }, fail: () => { my.hideLoading(); - self.setData({ + this.setData({ data_list_loding_status: 2, data_list_loding_msg: '服务器请求出错', }); diff --git a/alipay/pages/cart/cart.axml b/alipay/pages/cart/cart.axml index cfaf8c5c1..92c967ce8 100644 --- a/alipay/pages/cart/cart.axml +++ b/alipay/pages/cart/cart.axml @@ -32,7 +32,7 @@ ¥{{item.price}} ¥{{item.original_price}} - x{{item.stock}} + x{{item.stock}} diff --git a/alipay/pages/cart/cart.js b/alipay/pages/cart/cart.js index 21f27d99f..7703c7258 100644 --- a/alipay/pages/cart/cart.js +++ b/alipay/pages/cart/cart.js @@ -6,7 +6,7 @@ Page({ data_bottom_line_status: false, data_list: [], swipe_index: null, - total_price: 0, + total_price: '0.00', is_selected_all: false, buy_submit_disabled_status: true, }, @@ -45,7 +45,7 @@ Page({ get_data() { this.setData({ data_list_loding_status: 1, - total_price: 0, + total_price: '0.00', is_selected_all: false, buy_submit_disabled_status: true, }); @@ -319,9 +319,7 @@ Page({ for (var i in temp_data_list) { if ((temp_data_list[i]['selected'] || false) == true) { total_price += temp_data_list[i]['stock'] * temp_data_list[i]['price']; - if ((temp_data_list[i]['selected'] || false) == true) { - selected_count++; - } + selected_count++; } } @@ -334,17 +332,32 @@ Page({ // 结算 buy_submit_event(e) { - my.showToast({content: "开发中..."}); + var selected_count = 0; + var ids = []; + var temp_data_list = this.data.data_list; + for (var i in temp_data_list) { + if ((temp_data_list[i]['selected'] || false) == true) { + ids.push(temp_data_list[i]['id']); + selected_count++; + } + } + + if (selected_count <= 0) { + my.showToast({ + type: "fail", + content: '请选择商品' + }); + return false + } + // 进入订单确认页面 - // var data = [{ - // "buy_type": "goods", - // "goods_id": this.data.goods.id, - // "stock": this.data.temp_buy_number, - // "attr": attribute_all.join(',') - // }]; - // my.navigateTo({ - // url: '/pages/buy/buy?data=' + JSON.stringify(data) - // }); + var data = { + "buy_type": "cart", + "ids": ids.join(',') + }; + my.navigateTo({ + url: '/pages/buy/buy?data=' + JSON.stringify(data) + }); } }); diff --git a/service/Application/Api/Controller/BuyController.class.php b/service/Application/Api/Controller/BuyController.class.php index f293c2e56..c90b3d4b7 100755 --- a/service/Application/Api/Controller/BuyController.class.php +++ b/service/Application/Api/Controller/BuyController.class.php @@ -3,6 +3,8 @@ namespace Api\Controller; use Service\ResourcesService; +use Service\BuyService; +use Service\UserService; /** * 购买确认 @@ -45,18 +47,36 @@ class BuyController extends CommonController */ public function Index() { - // 清单商品 - $goods = $this->GetBuyGoods(); + // 获取商品列表 + $params = $this->data_post; + $params['user'] = $this->user; + $ret = BuyService::BuyTypeGoodsList($params); - // 用户地址 - $address = $this->GetBuyUserAddress(); + // 商品校验 + if(isset($ret['code']) && $ret['code'] == 0) + { + // 商品/基础信息 + $base = [ + 'total_price' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'total_price')), + 'total_stock' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'stock')), + 'address' => UserService::UserDefaultAddress(['user'=>$this->user])['data'], + ]; - $result = [ - 'goods' => $goods['goods'], - 'total_price' => $goods['total_price'], - 'address' => $address, - ]; - $this->ajaxReturn(L('common_operation_success'), 0, $result); + // 数据返回组装 + $user_address_list = UserService::UserAddressList(['user'=>$this->user]); + $express_list = ResourcesService::ExpressList(['is_enable'=>1, 'is_open_user'=>1]); + $payment_list = ResourcesService::BuyPaymentList(['is_enable'=>1, 'is_open_user'=>1]); + $result = [ + 'goods_list' => $ret['data'], + 'user_address_list' => $user_address_list['data'], + 'express_list' => $express_list, + 'payment_list' => $payment_list, + 'base' => $base, + ]; + $this->ajaxReturn(L('common_operation_success'), 0, $result); + } else { + $this->ajaxReturn(isset($ret['msg']) ? $ret['msg'] : L('common_param_error'), -100); + } } /** -- GitLab