hasMany('consignment_order_goods', 'order_id', 'id'); } //订单用户 public function user() { return $this->hasOne('user', 'id', 'user_id') ->field('id,sn,nickname,avatar,mobile,create_time'); } //订单流程 public function logs() { return $this->hasMany('consignment_order_log', 'order_id', 'id')->order('id desc'); } /** * Notes: 结算详情 * @param $json_value * @param $user_id * @return array */ public static function info($json_value, $user_id) { try{ $goods_lists = array(); $total_num = 0;//商品总数量 foreach ($json_value as $good) { $goods_lists[] = $good; //订单汇总信息 $total_num ++; } if (empty($goods_lists)) { $data=[ 'code' =>0, 'msg' =>'无商品', 'data' =>'', ]; return $data; } //寄卖数量限制 $jmnum =ShopConfig::get('website', 'jmnum'); if($jmnum>$total_num){ $data=[ 'code' =>0, 'msg' =>'寄卖满'.$jmnum.'件才可下单', 'data' =>'', ]; return $data; } $result = [ 'goods_lists' => array_values($goods_lists), ]; $data=[ 'code' =>1, 'msg' =>'', 'data' =>$result, ]; return $data; } catch (Exception $e) { $data=[ 'code' =>0, 'msg' =>$e->getMessage(), 'data' =>'', ]; return $data; } } /** * Notes: 添加订单 * @param $user_id * @param $data * @param $post */ public static function add($user_id, $data) { Db::startTrans(); try { $goods_lists = $data['goods_lists']; if (empty($data['goods_lists'])) { $data=[ 'code' =>0, 'msg' =>'无商品', 'data' =>'', ]; return $data; } $order = self::addOrder($user_id, $data); $order_id = $order['order_id']; $addOrderGoods=self::addOrderGoods($order_id, $goods_lists); if($addOrderGoods['code']==0){ return $addOrderGoods; } self::addOrderAfter($order_id, $user_id, $data); Db::commit(); $data=[ 'code' =>1, 'msg' =>'', 'data' =>$order, ]; return $data; } catch (Exception $e) { Db::rollback(); $data=[ 'code' =>0, 'msg' =>$e->getMessage(), 'data' =>'', ]; return $data; } } /** * Notes: 添加订单记录 * @param $user_id * @param $data * @param $user_address * @param array $extra */ public static function addOrder($user_id, $data) { $order_data = [ 'order_sn' => createSn('order', 'order_sn', '', 4), 'user_id' => $user_id, 'order_status' =>0, 'create_time' => time(), ]; $order_id = Db::name('consignment_order')->insertGetId($order_data); return [ 'order_id' => $order_id, 'order_sn' => $order_data['order_sn'], ]; } /** * Notes: 添加订单商品记录 * @param $order_id * @param $goods_lists */ public static function addOrderGoods($order_id, $goods_lists) { foreach ($goods_lists as $k1 => $good) { $goods_data = [ 'order_id' => $order_id, 'item_value' => $good['item_value'], 'goods_name' => $good['goods_name'], 'item_value' => $good['item_value'], 'goods_price' => $good['goods_price'], 'goods_img' => $good['img'][0], 'brand_name' => $good['brand_name'], 'phase_name' => $good['phase_name'], 'class_name' => $good['class_name'], 'channel_name' => $good['channel_name'], 'create_time' => time(), ]; $goods_id = Db::name('consignment_order_goods')->insertGetId($goods_data); foreach ($good['img'] as $key => $value) { $goods_img[] = [ 'type' =>2, 'union_id' => $goods_id, 'thumb_image' => $value, 'ori_image' => $value, 'create_time' => time(), ]; } } Db::name('mall_image')->insertAll($goods_img); $data=[ 'code' =>1, 'msg' =>'', 'data' =>'', ]; return $data; } /** * Notes: 下单后操作 * @param $order_id * @param $user_id * @param $type * @param $data */ public static function addOrderAfter($order_id, $user_id, $data) { //记录日志 ConsignmentOrderLog::record( $order_id, '寄卖下单成功', '24小时内平台估价' ); } }