增加产量排行榜

This commit is contained in:
Saipo 2025-05-08 11:48:26 +08:00
parent 95728b03ac
commit 0368b2f6e9
2 changed files with 42 additions and 3 deletions

View File

@ -59,8 +59,8 @@ def insertUser(openid):
,charset='utf8' ,charset='utf8'
) )
cur = conn.cursor() cur = conn.cursor()
sql = "INSERT INTO dajiaouser (openid,nameid,baglist) VALUES (%s,%s,%s)ß" sql = "INSERT INTO dajiaouser (openid,nameid,baglist) VALUES (%s,%s,%s)"
cur.execute(sql, (openid,"小jb","{"baglist":[{"id":1,"num":1}]}")) cur.execute(sql, (openid,'小jb','{"baglist":[{"id":1,"num":1}]}'))
conn.commit() conn.commit()
cur.close() cur.close()
conn.close() conn.close()

41
main.py
View File

@ -162,8 +162,45 @@ class MyPlugin(Star):
conn.close() conn.close()
yield event.plain_result(f"背包列表:\n{baglist_str}") yield event.plain_result(f"背包列表:\n{baglist_str}")
testNumber = 0
@filter.command("产量成就排行")
async def volumerank(self, event: AstrMessageEvent):
conn=pymysql.connect(host = '192.168.31.9' # 连接名称,默认
,user = 'saipo'
,passwd='Grasste0403' # 密码
,port= 3306 # 端口默认为3306
,db='saipo' # 数据库名称
,charset='utf8' # 字符编码
)
cur = conn.cursor()
sql = "SELECT du.uid, du.nameid, t.max_volume, MAX(dj.eventTime) AS eventTime FROM dajiaouser du LEFT JOIN (SELECT openid, MAX(volume) AS max_volume FROM dajiao GROUP BY openid) t ON du.openid = t.openid LEFT JOIN dajiao dj ON du.openid = dj.openid AND t.max_volume = dj.volume GROUP BY du.uid, du.nameid, t.max_volume;"
cur.execute(sql)
date = cur.fetchall()
ranklist = []
for i in range(len(date)):
ranklist.append((date[i][0], date[i][1], date[i][2], date[i][3]))
ranklist.sort(key=lambda x: x[2], reverse=True)
ranklist_str = "产量最高排名\n"
for i in range(len(ranklist)):
ranklist_str += f"{i+1} uid:{ranklist[i][0]} nameid:{ranklist[i][1]} 最高产量:{ranklist[i][2]}ml 打胶时间:{ranklist[i][3]}\n"
ranklist_str += "\n"
sql2 = "SELECT du.uid, du.nameid, t.min_volume, MIN(dj.eventTime) AS eventTime FROM dajiaouser du LEFT JOIN (SELECT openid, MIN(volume) AS min_volume FROM dajiao GROUP BY openid) t ON du.openid = t.openid LEFT JOIN dajiao dj ON du.openid = dj.openid AND t.min_volume = dj.volume GROUP BY du.uid, du.nameid, t.min_volume;"
cur.execute(sql2)
date2 = cur.fetchall()
ranklist2 = []
for i in range(len(date2)):
ranklist2.append((date2[i][0], date2[i][1], date2[i][2], date2[i][3]))
ranklist2.sort(key=lambda x: x[2])
ranklist_str += "产量最低排名\n"
for i in range(len(ranklist2)):
ranklist_str += f"{i+1} uid:{ranklist2[i][0]} nameid:{ranklist2[i][1]} 最低产量:{ranklist2[i][2]}ml 打胶时间:{ranklist2[i][3]}\n"
yield event.plain_result(ranklist_str)
cur.close()
conn.close()
testNumber = 0
@filter.command("测试") @filter.command("测试")
async def test(self, event: AstrMessageEvent): async def test(self, event: AstrMessageEvent):
global testNumber global testNumber
@ -171,4 +208,6 @@ class MyPlugin(Star):
yield event.plain_result(f"累积结果: {testNumber}") yield event.plain_result(f"累积结果: {testNumber}")