Authored by hf

format shopping cart

@@ -17,213 +17,214 @@ use Plugin\Images; @@ -17,213 +17,214 @@ use Plugin\Images;
17 class CartModel 17 class CartModel
18 { 18 {
19 19
20 - /**  
21 - * @param integer $uid 用户ID  
22 - * @return array|mixed 处理之后的购物车数据  
23 - */  
24 - public static function getCartData($uid)  
25 - {  
26 - $result = array(  
27 - 'cartNav' => true,  
28 - 'showLoginInfo' => true  
29 - );  
30 -  
31 - // 调用接口获取购物车的数据  
32 - $cartData = CartData::cartData($uid);  
33 -  
34 - // 处理普通购物车和预售购物车的数据  
35 - if (isset($cartData['data']) && !empty($cartData['data'])) {  
36 - $cart = $cartData['data'];  
37 -  
38 - /* 普通购物车 */  
39 - if(isset($cart['ordinary_cart_data'])) {  
40 - $result['commonGoodsCount'] = count($cart['ordinary_cart_data']['goods_list']);  
41 - $result['commonCart'] = self::procCartData($cart['ordinary_cart_data']);  
42 - }  
43 -  
44 - /* 预售购物车 */  
45 - if(isset($cart['advance_cart_data'])) {  
46 - $result['presellGoodsCount'] = count($cart['advance_cart_data']['goods_list']);  
47 - $result['preSellCart'] = self::procCartData($cart['advance_cart_data']);  
48 - }  
49 -  
50 - }  
51 -  
52 - return $result;  
53 - }  
54 -  
55 - /**  
56 - * 移出购物车  
57 - *  
58 - * @param int $uid 用户ID  
59 - * @param string $sku 商品sku列表  
60 - * @return array 接口返回的数据  
61 - */  
62 - public static function removeFromCart($uid, $sku)  
63 - {  
64 - $result = array('code' => 400, 'message' => '出错啦~');  
65 -  
66 - // 处理sku  
67 - $sku_list = json_encode(array($sku => 1));  
68 -  
69 - $remove = CartData::removeFromCart($uid, $sku_list);  
70 - if ($remove && isset($remove['code'])) {  
71 - $result['code'] = $remove['code'];  
72 - $result['message'] = $remove['message'];  
73 - }  
74 -  
75 - return $result;  
76 - }  
77 -  
78 - /**  
79 - * 移入收藏夹  
80 - *  
81 - * @param int $uid 用户ID  
82 - * @param string $sku 商品sku列表  
83 - * @return array 接口返回的数据  
84 - */  
85 - public static function addToFav($uid, $sku)  
86 - {  
87 - $result = array('code' => 400, 'message' => '出错啦~');  
88 -  
89 - // 处理sku  
90 - $sku_list = json_encode(array($sku => 1));  
91 -  
92 - $add = CartData::addToFav($uid, $sku_list);  
93 - if ($add && isset($add['code'])) {  
94 - $result['code'] = $add['code'];  
95 - $result['message'] = $add['message'];  
96 - }  
97 -  
98 - return $result;  
99 - }  
100 -  
101 - /**  
102 - * 处理购物车商品数据  
103 - *  
104 - * @param int $uid 用户ID  
105 - * @param int $skn 商品skn  
106 - * @param int $num 购买数目  
107 - * @return array 接口返回的数据  
108 - */  
109 - public static function cartProductData($uid, $skn, $num)  
110 - {  
111 - $result = array('code' => 400, 'message' => '出错啦~');  
112 -  
113 - $product = CartData::cartProductData($uid, $skn);  
114 - if (isset($product['code']) && $product['code'] === 200) {  
115 - $result['code'] = 200;  
116 - $data = array();  
117 - $productData = $product['data'];  
118 -  
119 - // 品牌信息  
120 - if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {  
121 - $data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);  
122 - }  
123 -  
124 - $data['name'] = $productData['product_name'];  
125 - $data['price'] = $productData['market_price'];  
126 - $data['salePrice'] = $productData['sales_price'];  
127 - $data['storage'] = $productData['storage_sum'];  
128 - $data['num'] = $num;  
129 -  
130 - // 商品选择  
131 - if (isset($productData['goods_list'])) {  
132 - $goodsList = $productData['goods_list'];  
133 -  
134 - $colors = array();  
135 - $oneColor = array();  
136 - $sizes = array();  
137 - $oneSize = array();  
138 - foreach ($goodsList as $val) {  
139 - // 颜色  
140 - $oneColor = array();  
141 - $oneColor['id'] = $val['color_id'];  
142 - $oneColor['name'] = $val['color_name'];  
143 -  
144 - // 尺码  
145 - foreach ($val['size_list'] as $one) {  
146 - $oneSize = array();  
147 - $oneSize['id'] = $one['size_id'];  
148 - $oneSize['name'] = $one['size_name'];  
149 - }  
150 - $sizes[] = $oneSize;  
151 -  
152 - $oneColor['sizes'] = $sizes;  
153 - $colors[] = $oneColor;  
154 - }  
155 -  
156 - $data['colors'] = $colors;  
157 - }  
158 -  
159 - $result['data'] = $data;  
160 - }  
161 -  
162 - return $result;  
163 - }  
164 -  
165 - /**  
166 - * 修改购物车商品数据  
167 - *  
168 - * @param int $uid 用户ID  
169 - * @param string $param 要更改的数据  
170 - * @return array 接口返回的数据  
171 - */  
172 - public static function modifyCartProduct($uid, $param)  
173 - {  
174 - $result = array('code' => 400, 'message' => '出错啦~');  
175 -  
176 - // 处理要更改的数据  
177 - $swapData = json_encode(array($param));  
178 -  
179 - $modify = CartData::addToFav($uid, $swapData);  
180 - if ($modify && isset($modify['code'])) {  
181 - $result['code'] = $modify['code'];  
182 - $result['message'] = $modify['message'];  
183 - }  
184 -  
185 - return $result;  
186 - }  
187 -  
188 -  
189 - /**  
190 - * 处理不同类型的购物车数据  
191 - *  
192 - * @param array $data 不同类型购物车数据  
193 - * @return array $result 处理之后的不同类型购物车数据  
194 - */  
195 - private static function procCartData($data)  
196 - {  
197 - $result = array();  
198 -  
199 - $oneGoods = array();  
200 - // 购买的商品列表  
201 - foreach ($data['goods_list'] as $value) {  
202 - $oneGoods['id'] = $value['product_sku'];  
203 - $oneGoods['skn'] = $value['product_skn'];  
204 - $oneGoods['name'] = $value['product_name'];  
205 - $oneGoods['thumb'] = Images::getImageUrl($value['goods_images'], 120, 120);  
206 - $oneGoods['color'] = $value['color_name'];  
207 - $oneGoods['size'] = $value['size_name'];  
208 - $oneGoods['appearDate'] = '12月'; // 目前app接口没有返回该数据  
209 - $oneGoods['price'] = $value['real_price'];  
210 - $oneGoods['count'] = $value['buy_number'];  
211 - $oneGoods['lowStocks'] = true;  
212 -  
213 - $result['goods'][] = $oneGoods;  
214 - }  
215 - // 赠品  
216 - count($data['gift_list']) && $result['freebieOrAdvanceBuy'] = true;  
217 - $result['freebie'] = $data['gift_list'];  
218 - // 加价购  
219 - $result['advanceBuy'] = $data['price_gift'];  
220 - // 结算数据  
221 - $result['price'] = $data['shopping_cart_data']['order_amount'];  
222 - $result['activityPrice'] = $data['shopping_cart_data']['discount_amount'];  
223 - $result['count'] = $data['shopping_cart_data']['goods_count'];  
224 - $result['sumPrice'] = $data['shopping_cart_data']['order_amount'];  
225 -  
226 - return $result;  
227 - } 20 + /**
  21 + * @param integer $uid 用户ID
  22 + * @return array|mixed 处理之后的购物车数据
  23 + */
  24 + public static function getCartData($uid)
  25 + {
  26 + $result = array();
  27 +
  28 + // 提示登录
  29 + if (!$uid) {
  30 + $result['showLoginInfo'] = true;
  31 + }
  32 +
  33 + // 普通购物车和预售购物车的数据总数
  34 + $result['cartNav']['commonGoodsCount'] = '0';
  35 + $result['cartNav']['presellGoodsCount'] = '0';
  36 +
  37 + // 调用接口获取购物车的数据
  38 + $cartData = CartData::cartData($uid);
  39 +
  40 + // 处理普通购物车和预售购物车的数据
  41 +
  42 + /* 普通购物车 */
  43 + if (!empty($cartData['data']['ordinary_cart_data']['goods_list'])) {
  44 + $result['cartNav']['commonGoodsCount'] = count($cartData['data']['ordinary_cart_data']['goods_list']);
  45 + $result['commonCart'] = self::procCartData($cartData['data']['ordinary_cart_data']);
  46 + }
  47 +
  48 + /* 预售购物车 */
  49 + if (!empty($cartData['data']['advance_cart_data']['goods_list'])) {
  50 + $result['cartNav']['presellGoodsCount'] = count($cartData['data']['advance_cart_data']['goods_list']);
  51 + $result['preSellCart'] = self::procCartData($cartData['data']['advance_cart_data']);
  52 + }
  53 +
  54 + return $result;
  55 + }
  56 +
  57 + /**
  58 + * 移出购物车
  59 + *
  60 + * @param int $uid 用户ID
  61 + * @param string $sku 商品sku列表
  62 + * @return array 接口返回的数据
  63 + */
  64 + public static function removeFromCart($uid, $sku)
  65 + {
  66 + $result = array('code' => 400, 'message' => '出错啦~');
  67 +
  68 + // 处理sku
  69 + $sku_list = json_encode(array($sku => 1));
  70 +
  71 + $remove = CartData::removeFromCart($uid, $sku_list);
  72 + if ($remove && isset($remove['code'])) {
  73 + $result['code'] = $remove['code'];
  74 + $result['message'] = $remove['message'];
  75 + }
  76 +
  77 + return $result;
  78 + }
  79 +
  80 + /**
  81 + * 移入收藏夹
  82 + *
  83 + * @param int $uid 用户ID
  84 + * @param string $sku 商品sku列表
  85 + * @return array 接口返回的数据
  86 + */
  87 + public static function addToFav($uid, $sku)
  88 + {
  89 + $result = array('code' => 400, 'message' => '出错啦~');
  90 +
  91 + // 处理sku
  92 + $sku_list = json_encode(array($sku => 1));
  93 +
  94 + $add = CartData::addToFav($uid, $sku_list);
  95 + if ($add && isset($add['code'])) {
  96 + $result['code'] = $add['code'];
  97 + $result['message'] = $add['message'];
  98 + }
  99 +
  100 + return $result;
  101 + }
  102 +
  103 + /**
  104 + * 处理购物车商品数据
  105 + *
  106 + * @param int $uid 用户ID
  107 + * @param int $skn 商品skn
  108 + * @param int $num 购买数目
  109 + * @return array 接口返回的数据
  110 + */
  111 + public static function cartProductData($uid, $skn, $num)
  112 + {
  113 + $result = array('code' => 400, 'message' => '出错啦~');
  114 +
  115 + $product = CartData::cartProductData($uid, $skn);
  116 + if (isset($product['code']) && $product['code'] === 200) {
  117 + $result['code'] = 200;
  118 + $data = array();
  119 + $productData = $product['data'];
  120 +
  121 + // 品牌信息
  122 + if (isset($productData['brand_info']) && !empty($productData['brand_info'])) {
  123 + $data['thumb'] = Helpers::getImageUrl($productData['brand_info']['brand_ico'], 120, 120);
  124 + }
  125 +
  126 + $data['name'] = $productData['product_name'];
  127 + $data['price'] = $productData['market_price'];
  128 + $data['salePrice'] = $productData['sales_price'];
  129 + $data['storage'] = $productData['storage_sum'];
  130 + $data['num'] = $num;
  131 +
  132 + // 商品选择
  133 + if (isset($productData['goods_list'])) {
  134 + $goodsList = $productData['goods_list'];
  135 +
  136 + $colors = array();
  137 + $oneColor = array();
  138 + $sizes = array();
  139 + $oneSize = array();
  140 + foreach ($goodsList as $val) {
  141 + // 颜色
  142 + $oneColor = array();
  143 + $oneColor['id'] = $val['color_id'];
  144 + $oneColor['name'] = $val['color_name'];
  145 +
  146 + // 尺码
  147 + foreach ($val['size_list'] as $one) {
  148 + $oneSize = array();
  149 + $oneSize['id'] = $one['size_id'];
  150 + $oneSize['name'] = $one['size_name'];
  151 + }
  152 + $sizes[] = $oneSize;
  153 +
  154 + $oneColor['sizes'] = $sizes;
  155 + $colors[] = $oneColor;
  156 + }
  157 +
  158 + $data['colors'] = $colors;
  159 + }
  160 +
  161 + $result['data'] = $data;
  162 + }
  163 +
  164 + return $result;
  165 + }
  166 +
  167 + /**
  168 + * 修改购物车商品数据
  169 + *
  170 + * @param int $uid 用户ID
  171 + * @param string $param 要更改的数据
  172 + * @return array 接口返回的数据
  173 + */
  174 + public static function modifyCartProduct($uid, $param)
  175 + {
  176 + $result = array('code' => 400, 'message' => '出错啦~');
  177 +
  178 + // 处理要更改的数据
  179 + $swapData = json_encode(array($param));
  180 +
  181 + $modify = CartData::addToFav($uid, $swapData);
  182 + if ($modify && isset($modify['code'])) {
  183 + $result['code'] = $modify['code'];
  184 + $result['message'] = $modify['message'];
  185 + }
  186 +
  187 + return $result;
  188 + }
  189 +
  190 + /**
  191 + * 处理不同类型的购物车数据
  192 + *
  193 + * @param array $data 不同类型购物车数据
  194 + * @return array $result 处理之后的不同类型购物车数据
  195 + */
  196 + private static function procCartData($data)
  197 + {
  198 + $result = array();
  199 +
  200 + $oneGoods = array();
  201 + // 购买的商品列表
  202 + foreach ($data['goods_list'] as $value) {
  203 + $oneGoods['id'] = $value['product_sku'];
  204 + $oneGoods['skn'] = $value['product_skn'];
  205 + $oneGoods['name'] = $value['product_name'];
  206 + $oneGoods['thumb'] = Images::getImageUrl($value['goods_images'], 120, 120);
  207 + $oneGoods['color'] = $value['color_name'];
  208 + $oneGoods['size'] = $value['size_name'];
  209 + $oneGoods['appearDate'] = '12月'; // 目前app接口没有返回该数据
  210 + $oneGoods['price'] = $value['real_price'];
  211 + $oneGoods['count'] = $value['buy_number'];
  212 + $oneGoods['lowStocks'] = true;
  213 +
  214 + $result['goods'][] = $oneGoods;
  215 + }
  216 + // 赠品
  217 + count($data['gift_list']) && $result['freebieOrAdvanceBuy'] = true;
  218 + $result['freebie'] = $data['gift_list'];
  219 + // 加价购
  220 + $result['advanceBuy'] = $data['price_gift'];
  221 + // 结算数据
  222 + $result['price'] = $data['shopping_cart_data']['order_amount'];
  223 + $result['activityPrice'] = $data['shopping_cart_data']['discount_amount'];
  224 + $result['count'] = $data['shopping_cart_data']['goods_count'];
  225 + $result['sumPrice'] = $data['shopping_cart_data']['order_amount'];
  226 +
  227 + return $result;
  228 + }
228 229
229 } 230 }