Laravel-小程序 买票之详情和购买

<?php

namespace App\Http\Controllers\api;

use App\Http\Controllers\Controller;
use App\Models\ych\Concert;
use App\Models\ych\Hall;
use App\Models\ych\Seat;
use App\Models\ych\Ticket;
use App\Models\ych\User;
use App\Service\SendCode;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class ConcertController extends Controller
{
    public function listShow(Request $request)
    {
        $page = $request->get('page');
        $data = Concert::with('hall')->paginate(6);

        return ['code'=>200,'msg'=>'ok','data'=>$data];
    }

    public function info(Request $request)
    {
        $id = $request->get('id');
        $data = Concert::with('hall')->where('id',$id)->first();
        return ['code'=>200,'msg'=>'ok','data'=>$data];
    }

    //查看票的剩余量
    public function  buy(Request $request)
    {

        $id = $request->get('id');// 演唱会列表id


        $sid = $request->get('sid');//厅id

        $data = $this->getTicketNum($id,$sid);

        if(!empty($data)){
            $num = count($data);
            return ['code'=>200,'msg'=>'ok','data'=>$num];
        }
        return ['code'=>40005,'msg'=>'没有票了','data'=>''];
    }


    //获取票的数量
    public function getTicketNum($id,$sid)
    {
        $res = Hall::with('seat')->where('sid',$sid)->get()->toArray();


        $arr = $res[0]['seat'];
        $data=[];
        foreach ($arr as $k=>$v){
            if($v['status']==1){
                array_push($data,$v['seat']);
            }
        }
        return $data;//返回数组
    }

    /*
     * 通过订单获取到座位
     * **/
    public function setSeatStatus($ticket,$status)
    {
        $hall = mb_substr($ticket->ticket,11,2);//大厅
        $seat = mb_substr($ticket->ticket,-2,2);//座位号
        $sid = Hall::where('hall',$hall)->first();
        Seat::where(['id'=>$sid->sid,'seat'=>$seat])->update(['status'=>$status]);
    }

}

<view style="flex: none;">

<view>标题:{{data.title}}</view>
<view><image src="{{data.img}}"></image></view>
<view>内容:</view>
<view>{{data.text}}</view>
<view>场地:{{data.hall.hall}}</view>
<view>价格:{{data.price}}元</view>

<view class="shareBox">
    <button type="primary" open-type="contact">在线咨询</button>
  </view>

<text bindtap="map">地图</text>
<button bindtap="btn" data-id="{{data.id}}" data-sid="{{data.hall.sid}}" style="position: absolute; bottom: 40px; left: 100px;">购买</button>
</view>
// pages/info/info.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    data:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let id = options.id
    this.info(id);

  },
  info(id){
    wx.request({
      url: 'http://www.study.com/api/info',
      data:{id},
      success:res=>{
          if(res.data.code==200){
            let data = res.data.data
            this.setData({
              data
            })
          }
      }
  })
  },
  btn(e){
    let phone = wx.getStorageSync('phone')
    let token = wx.getStorageSync('token')

    if(phone=="" || token == ""){
      wx.navigateTo({
        url: '/pages/indexs/indexs',
      })
      return
    }
    let id = e.currentTarget.dataset.id //演唱会id
    let sid = e.currentTarget.dataset.sid //厅id
    wx.request({
      url: 'http://www.study.com/api/buy',
      data:{id,sid},
      header:{token},
      success:res=>{
       if(res.data.code==200){
         let num = res.data.data
        wx.navigateTo({
          url: '/pages/buy/buy?id='+id+'&sid='+sid+'&num='+num,
        })
       }else{
         wx.showToast({
           title: res.data.msg,
         })
       }
      }
    })
  
  },
  map(){
    wx.chooseLocation({
      latitude: 0,
    })
  }
 


})

以下是一个简单的 Java Swing 实现登录买票小程序的基本代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TicketBookingApp extends JFrame implements ActionListener { private JLabel usernameLabel, passwordLabel; private JTextField usernameTextField; private JPasswordField passwordField; private JButton loginButton; public TicketBookingApp() { //设置窗口标题 setTitle("登录买票小程序"); //创建登录表单 usernameLabel = new JLabel("用户名:"); passwordLabel = new JLabel("密码:"); usernameTextField = new JTextField(20); passwordField = new JPasswordField(20); loginButton = new JButton("登录"); loginButton.addActionListener(this); //添加组件到登录表单 JPanel panel = new JPanel(new GridLayout(3, 2)); panel.add(usernameLabel); panel.add(usernameTextField); panel.add(passwordLabel); panel.add(passwordField); panel.add(new JLabel()); panel.add(loginButton); //添加登录表单到窗口 getContentPane().add(panel, BorderLayout.CENTER); //设置窗口大小和关闭行为 setSize(300, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { //获取用户名和密码 String username = usernameTextField.getText().trim(); String password = new String(passwordField.getPassword()); //验证用户名和密码 if(username.equals("admin") && password.equals("123456")) { //登录成功,打开买票窗口 dispose(); new TicketBookingWindow(); } else { //登录失败,提示错误信息 JOptionPane.showMessageDialog(this, "用户名或密码错误!", "登录失败", JOptionPane.ERROR_MESSAGE); } } public static void main(String[] args) { //启动应用程序 new TicketBookingApp(); } } class TicketBookingWindow extends JFrame { public TicketBookingWindow() { //设置窗口标题 setTitle("买票"); //创建买票表单 JLabel fromLabel = new JLabel("出发地:"); JLabel toLabel = new JLabel("目的地:"); JLabel dateLabel = new JLabel("日期:"); JTextField fromTextField = new JTextField(20); JTextField toTextField = new JTextField(20); JTextField dateTextField = new JTextField(20); JButton bookButton = new JButton("预订"); //添加组件到买票表单 JPanel panel = new JPanel(new GridLayout(4, 2)); panel.add(fromLabel); panel.add(fromTextField); panel.add(toLabel); panel.add(toTextField); panel.add(dateLabel); panel.add(dateTextField); panel.add(new JLabel()); panel.add(bookButton); //添加买票表单到窗口 getContentPane().add(panel, BorderLayout.CENTER); //设置窗口大小和关闭行为 setSize(300, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } } ``` 这个程序包含两个窗口:登录窗口和买票窗口。在登录窗口中,用户需要输入用户名和密码才能进入买票窗口。在买票窗口中,用户可以输入出发地、目的地和日期,然后点击预订按钮购买车票。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悄悄顽皮的猴头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值