import json,time,re from managements import management_login from users import users_login from registered import registered from back import back read_movie = open('movie.json', 'r', encoding='utf-8') movie = json.loads(read_movie.read()) read_user = open('user.json', 'r', encoding='utf-8') user = json.loads(read_user.read()) read_management = open('management.json', 'r', encoding='utf-8') management = json.loads(read_management.read()) read_ticket_record = open('ticket_record.json', 'r', encoding='utf-8') ticket_record = json.loads(read_ticket_record.read()) def movie_tickets(): while True: permissions = input('请您选择用户操作(1.用户登录 2.注册用户 3. 找回密码 4.退出系统):') if permissions == '1': while True: login = input('请您选择登录权限(1.个人登录 2.管理登录 3.退出登录):') if login == '1': users_login(user, movie, ticket_record) elif login == '2': management_login(management, user, movie, ticket_record) elif login == '3': break elif permissions == '2': registered(user) elif permissions == '3': back(management, user) elif permissions == '4': break movie_tickets() save = open('movie.json', 'w', encoding='utf-8') json.dump(movie, save, ensure_ascii=False, indent=4) save = open('user.json', 'w', encoding='utf-8') json.dump(user, save, ensure_ascii=False, indent=4) save = open('management.json', 'w', encoding='utf-8') json.dump(management, save, ensure_ascii=False, indent=4) save = open('ticket_record.json', 'w', encoding='utf-8') json.dump(ticket_record, save, ensure_ascii=False, indent=4)
时间: 2024-04-26 12:24:56 浏览: 6
这是一段 Python 代码,看起来像是一个电影票售卖系统的后端程序。它读取了一些 JSON 格式的文件,包括电影信息、用户信息、管理信息和售票记录信息。然后它进入一个 while 循环,提示用户选择不同的操作,包括用户登录、注册、找回密码和退出系统。如果用户选择登录,它会提示用户选择个人登录或管理登录。如果用户选择注册,它会调用 registered 函数进行用户注册。如果用户选择找回密码,它会调用 back 函数进行密码找回。最后,它将更新后的电影信息、用户信息、管理信息和售票记录信息写入对应的 JSON 文件中。
相关问题
计数不正确 SELECT count(*) FROM `managements` WHERE (name LIKE '%第三方%' OR responsible_unit LIKE '%某某公司%') AND `managements`.`deleted_at` IS NULL
根据你提供的 SQL 查询语句,计数不正确的问题可能出现在两个方面。
首先,确保你使用的 GORM 版本是最新的,并且你的数据库驱动也是兼容的。某些旧版本的 GORM 可能存在计数相关的问题,因此更新到最新版本可能会解决这个问题。
其次,检查你的查询条件是否正确,并与预期结果一致。在你提供的 SQL 查询语句中,使用了 `LIKE` 条件进行模糊匹配,并且包含了 OR 条件和 IS NULL 条件。请确保你的查询条件和预期结果一致,以及数据库中的数据是否满足这些条件。
另外,使用 GORM 进行条件查询时,应该注意链式调用的顺序。正确的链式调用顺序应该是先调用 `Model` 方法指定要查询的模型,然后使用 `Where` 方法设置查询条件,最后调用 `Count` 方法计算记录数。
下面是一个示例代码,演示如何使用 GORM 来进行条件查询和计数:
```go
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type Management struct {
ID uint
Name string
ResponsibleUnit string
DeletedAt gorm.DeletedAt `gorm:"index"`
}
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/db_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println("连接数据库失败:", err)
return
}
var count int64
name := "第三方"
unit := "某某公司"
db.Model(&Management{}).
Where("name LIKE ? OR responsible_unit LIKE ?", "%"+name+"%", "%"+unit+"%").
Where("deleted_at IS NULL").
Count(&count)
fmt.Println("匹配记录数:", count)
}
```
在上面的示例中,我们使用 `Model` 方法指定要查询的模型为 `Management`,然后使用 `Where` 方法设置查询条件,包括 `LIKE` 条件、OR 条件和 IS NULL 条件。最后使用 `Count` 方法来计算符合条件的记录数,并将结果存储在 `count` 变量中。
确保你根据实际情况修改示例代码中的数据库连接信息,并根据你的查询条件调整 `name` 和 `unit` 的取值。通过这种方式,你可以正确计算符合条件的记录数。
创建一个带有产品、零售商、制造商、物流中心、仓库、存放、管理、制造、运输作为实体的物流信息管理系统含mysql代码
首先,我们需要创建一个数据库,命名为 "logistics_management_system",并创建以下表格:
1. 产品表格(products):
```
CREATE TABLE products (
product_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(50) NOT NULL,
product_description TEXT,
product_price DOUBLE NOT NULL,
product_manufacturer_id INT(11) NOT NULL,
product_retailer_id INT(11) NOT NULL,
product_stock INT(11) NOT NULL
);
```
2. 制造商表格(manufacturers):
```
CREATE TABLE manufacturers (
manufacturer_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
manufacturer_name VARCHAR(50) NOT NULL,
manufacturer_address VARCHAR(100) NOT NULL,
manufacturer_phone VARCHAR(20) NOT NULL
);
```
3. 零售商表格(retailers):
```
CREATE TABLE retailers (
retailer_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
retailer_name VARCHAR(50) NOT NULL,
retailer_address VARCHAR(100) NOT NULL,
retailer_phone VARCHAR(20) NOT NULL
);
```
4. 物流中心表格(logistics_centers):
```
CREATE TABLE logistics_centers (
logistics_center_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
logistics_center_name VARCHAR(50) NOT NULL,
logistics_center_address VARCHAR(100) NOT NULL,
logistics_center_phone VARCHAR(20) NOT NULL
);
```
5. 仓库表格(warehouses):
```
CREATE TABLE warehouses (
warehouse_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
warehouse_name VARCHAR(50) NOT NULL,
warehouse_address VARCHAR(100) NOT NULL,
warehouse_phone VARCHAR(20) NOT NULL,
warehouse_logistics_center_id INT(11) NOT NULL
);
```
6. 存放表格(storages):
```
CREATE TABLE storages (
storage_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
storage_product_id INT(11) NOT NULL,
storage_warehouse_id INT(11) NOT NULL,
storage_quantity INT(11) NOT NULL,
FOREIGN KEY (storage_product_id) REFERENCES products (product_id),
FOREIGN KEY (storage_warehouse_id) REFERENCES warehouses (warehouse_id)
);
```
7. 管理表格(managements):
```
CREATE TABLE managements (
management_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
management_product_id INT(11) NOT NULL,
management_warehouse_id INT(11) NOT NULL,
management_quantity INT(11) NOT NULL,
management_type VARCHAR(20) NOT NULL,
management_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (management_product_id) REFERENCES products (product_id),
FOREIGN KEY (management_warehouse_id) REFERENCES warehouses (warehouse_id)
);
```
8. 运输表格(transports):
```
CREATE TABLE transports (
transport_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
transport_product_id INT(11) NOT NULL,
transport_origin_warehouse_id INT(11) NOT NULL,
transport_destination_warehouse_id INT(11) NOT NULL,
transport_quantity INT(11) NOT NULL,
transport_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (transport_product_id) REFERENCES products (product_id),
FOREIGN KEY (transport_origin_warehouse_id) REFERENCES warehouses (warehouse_id),
FOREIGN KEY (transport_destination_warehouse_id) REFERENCES warehouses (warehouse_id)
);
```
以上是创建表格的代码,接下来我们可以插入一些测试数据:
1. 插入制造商数据:
```
INSERT INTO manufacturers (manufacturer_name, manufacturer_address, manufacturer_phone) VALUES
('Apple Inc.', '1 Apple Park Way, Cupertino, CA 95014', '+1-408-996-1010'),
('Samsung Electronics Co., Ltd.', '129, Samsung-ro, Maetan 3-dong, Yeongtong-gu, Suwon-si, Gyeonggi-do, Korea', '+82-2-2255-0114');
```
2. 插入零售商数据:
```
INSERT INTO retailers (retailer_name, retailer_address, retailer_phone) VALUES
('Amazon.com, Inc.', '410 Terry Avenue North, Seattle, WA 98109', '+1-206-266-1000'),
('Walmart Inc.', '702 SW 8th St, Bentonville, AR 72716', '+1-479-273-4000');
```
3. 插入物流中心数据:
```
INSERT INTO logistics_centers (logistics_center_name, logistics_center_address, logistics_center_phone) VALUES
('FedEx Ground', '1000 FedEx Drive, Moon Township, PA 15108', '+1-800-463-3339'),
('UPS Supply Chain Solutions', '6201 NW 36th St, Miami, FL 33166', '+1-800-742-5877');
```
4. 插入仓库数据:
```
INSERT INTO warehouses (warehouse_name, warehouse_address, warehouse_phone, warehouse_logistics_center_id) VALUES
('Moon Township Warehouse', '1000 FedEx Drive, Moon Township, PA 15108', '+1-412-787-3640', 1),
('Miami Warehouse', '6201 NW 36th St, Miami, FL 33166', '+1-305-592-1700', 2);
```
5. 插入产品数据:
```
INSERT INTO products (product_name, product_description, product_price, product_manufacturer_id, product_retailer_id, product_stock) VALUES
('iPhone 12 Pro', 'The most powerful iPhone ever', 999.00, 1, 1, 100),
('Galaxy S21 Ultra', 'The ultimate smartphone experience', 1199.99, 2, 2, 100);
```
6. 插入存放数据:
```
INSERT INTO storages (storage_product_id, storage_warehouse_id, storage_quantity) VALUES
(1, 1, 50),
(2, 2, 50);
```
7. 插入管理数据:
```
INSERT INTO managements (management_product_id, management_warehouse_id, management_quantity, management_type) VALUES
(1, 1, 20, 'IN'),
(1, 1, 30, 'IN'),
(2, 2, 20, 'IN'),
(2, 2, 30, 'IN');
```
8. 插入运输数据:
```
INSERT INTO transports (transport_product_id, transport_origin_warehouse_id, transport_destination_warehouse_id, transport_quantity) VALUES
(1, 1, 2, 25),
(2, 2, 1, 25);
```
以上是插入测试数据的代码,你可以根据实际情况自行更改。
最后,我们需要连接数据库并查询一些数据:
```
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "logistics_management_system";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询所有产品
$sql = "SELECT * FROM products";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["product_id"]. " - Name: " . $row["product_name"]. " - Description: " . $row["product_description"]. " - Price: $" . $row["product_price"]. "<br>";
}
} else {
echo "没有产品数据";
}
$conn->close();
?>
```
以上代码将查询所有产品并将其打印出来。
希望这个示例对你有所帮助!