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 08:24:56 浏览: 159
这是一段 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` 的取值。通过这种方式,你可以正确计算符合条件的记录数。
阅读全文