| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- <?php
 
- namespace Factory\Lib;
 
- use Dever;
 
- class Order
 
- {
 
-     # 得到商品和总价
 
-     private function goods()
 
-     {
 
-     	$goods = Dever::input('goods');
 
-     	if (!$goods) {
 
-             Dever::alert('请传入商品');
 
-         }
 
-         $goods = Dever::json_decode($goods);
 
-         $this->data['price'] = 0;
 
-         $this->data['num'] = 0;
 
-         $this->data['name'] = array();
 
-         $factory_id = Dever::input('factory_id');
 
-         # 计算总价格
 
-         foreach ($goods as $k => $v) {
 
-         	if (strstr($v['id'], '-')) {
 
-         		$t = explode('-', $v['id']);
 
-         		$v['id'] = $t[0];
 
-         		$s = $t[1];
 
-         	} else {
 
-         		$s = -1;
 
-         	}
 
-             $n = $v['num'];
 
-             $goods_sku = Dever::db('factory/goods_sku')->find(array('factory_id' => $factory_id, 'goods_id' => $v['id'], 'sku_id' => $s));
 
-             $this->data['list'][$k] = Dever::load('goods/lib/info')->getPayInfo($v['id'], $s, $n);
 
-             $this->data['list'][$k]['num'] = $n;
 
-             $this->data['list'][$k]['buy_num'] = $n;
 
-             $this->data['num'] += $n;
 
-             if ($goods_sku) {
 
-                 $price = $goods_sku['p_price'];
 
-             } else {
 
-                 $price = $this->data['list'][$k]['price'];
 
-             }
 
-             $this->data['price'] += $price * $n;
 
-             $this->data['name'][] = $this->data['list'][$k]['name'];
 
-         }
 
-         $this->data['name'] = implode(',', $this->data['name']);
 
-     }
 
-     # 下单
 
-     public function action_commit_api()
 
-     {
 
-         $info = Dever::input('info');
 
-         $this->goods();
 
-         
 
-         $order_data['type'] = 2;
 
-         $order_data['type_id'] = Dever::input('store_id');
 
-         $order_data['source_id'] = Dever::input('factory_id');
 
-         $order_data['source_type'] = 3;
 
-         $order_data['name'] = $this->data['name'];
 
-         $order_data['num'] = $this->data['num'];
 
-         $order_data['info'] = $info;
 
-         $order_data['price'] = $this->data['price'];
 
-         $order_data['status'] = 3;
 
-         $order_data['order_num'] = $this->getOrderId();
 
-         $id = Dever::db('shop/buy_order')->insert($order_data);
 
-         if (!$id) {
 
-             Dever::alert('下单失败');
 
-         }
 
-         foreach($this->data['list'] as $k => $v) {
 
-             $data['order_id'] = $id;
 
-             $data['goods_id'] = $v['id'];
 
-             $data['sku_id'] = $v['sku_id'];
 
-             $data['price'] = $v['price'] * $v['buy_num'];
 
-             $data['num'] = $v['buy_num'];
 
-             $state = Dever::db('shop/buy_order_goods')->insert($data);
 
-         }
 
-         return Dever::url('project/database/list&project=shop&&table=buy_order&menu=shop&menu_id=77&search_option_state=1&search_option_type=2', 'manage');
 
-     }
 
-     # 生成订单号
 
-     public function getOrderId()
 
-     {
 
-         $where['order_num'] = Dever::order('F');
 
-         $state = Dever::db('shop/buy_order')->one($where);
 
-         if (!$state) {
 
-             return $where['order_num'];
 
-         } else {
 
-             return $this->getOrderId();
 
-         }
 
-     }
 
- }
 
 
  |