def 收藏点赞(data): #收藏点赞举报的增加 用户 = data['id'] 类型 = data['type'] if data['type'] == 4: 视频 = data['like'] else: 视频 = data['videoid'] 查询 = "SELECT * FROM likes WHERE user=%s and video =%s and type = %s" % ( 用户, 视频, 类型) 查询结果 = sqls(查询) if len(查询结果) == 1: return '[]', -1, "已存在" else: sql = "INSERT INTO `likes` (`user`,`video`,`time`,`type`) select %s,%s,NOW(),%s from DUAL WHERE NOT EXISTS(SELECT * FROM likes WHERE user=%s and video =%s and type = %s);" % ( 用户, 视频, 类型, 用户, 视频, 类型) 结果 = sqls(sql) if 类型 == "1": 收藏增加 = sqls("update video set goodnum=goodnum+'1' where id = %s;" % (视频)) return '插入成功', elif 类型 == "2": 点赞增加 = sqls( "update video set collectionnum=goodnum+'1' where id = %s;" % (视频)) return '插入成功', elif 类型 == "3": return '举报成功', elif 类型 == "4": 点赞增加 = sqls("update user set likenum=likenum+'1' where id = %s;" % (用户)) return '插入成功', else: return '标签不存在', -1
def 支付宝回调(data): #根据订单号核实相关信息 http://pay.dyzbed.com/wappay/query.php?goodid=2019110910411229728051600001 print(data['notify_time']) # 通知的发送时间。格式为yyyy-MM-dd HH:mm:ss print(data['app_id']) # 支付宝分配给开发者的应用Id print(data['sign']) # 签名 print(data['trade_no']) # 支付宝交易号 print(data['out_trade_no']) # 商户订单号 print(data['buyer_id']) # 买家支付宝用户号 print(data['trade_status']) # 交易状态 print(data['total_amount']) # 订单金额 print(data['receipt_amount']) # 实收金额 print(data['buyer_pay_amount']) # 付款金额 print(data['subject']) # 订单标题 print(data['body']) # 商品描述 print(data['fund_bill_list']) # 支付金额信息 #print(data['timestamp']) if data['app_id'] == "2019092667885024": #订单信息录入数据库 增="INSERT INTO `dy`.`alipay`(`app_id`, `trade_no`, `out_trade_no`, `sign`, `buyer_id`, `trade_status`, `total_amount`, `receipt_amount`, `buyer_pay_amount`, `subject`, `body`, `fund_bill_list`, `statr`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')" \ %(data['app_id'],data['trade_no'],data['out_trade_no'],data['sign'],data['buyer_id'],data['trade_status'],data['total_amount'],data['receipt_amount'],data['buyer_pay_amount'],data['subject'],data['body'],data['fund_bill_list'],1) 增 = sqls(增) 订单成功 = "UPDATE `dy`.`orderid` SET `type` = '支付成功' WHERE `orderid` = '%s'" % ( data['out_trade_no']) 订单成功 = sqls(订单成功) return "恭喜支付成功", else: return "支付商户异常", -501, '订单异常'
def 注册(data): if 手机验证(data['phone']) < 0: return '手机格式不正确', -1 if len(data['referrer']) == 0: 推荐人 = None else: data['referrer'] = int(data['referrer']) - 168000 查询 = "select * from user where id = '%s' " % (data['referrer']) 查询 = sqls(查询) if len(查询) == 0: return '', -1, "推荐人不存在" else: 推荐人 = data['referrer'] if 验证码判断(data['phone'], data['code'], 1) < 0: return '', -3, '验证码不正确' password = data['password'] password = password.encode(encoding='utf-8') password = hashlib.md5(password).hexdigest() 注册= "INSERT INTO `user` (`phone`, `password`, `address`, `referrer`, `vip`, `nick`,`picture`,`province`,`city`,`area`) VALUES ('%s', '%s','%s','%s','%s', '%s','%s','%s','%s','%s');"% \ (data['phone'],password,data['address'],推荐人,1,'抖云会员',"https://douyunzhibo.oss-cn-chengdu.aliyuncs.com/index/%E5%A4%B4%E5%83%8F1.jpg",data['province'],data['city'],data['area']) 注册 = sqls(注册) sqls("UPDATE `dy`.`smscode` SET `state` = '2' WHERE phone = %s and type =1" % (data['phone'])) token = {} token['token'] = idtoken(注册[0]['id']) return token, 0, '恭喜您注册成功,实名认证之后获取更多收益。'
def 生成激活码(data): 判断使用情况 = "select code as code from code where state = 1 and userid = %s " % data[ 'id'] code = sqls(判断使用情况) vip = "select vip from user where id = %s" % data['id'] vip = sqls(vip) print(vip[0]['vip']) if int(vip[0]['vip']) == 1 or int(vip[0]['vip']) == 2: return '', -1, '您名下没有激活码' if len(code) == 0: sql = "select max(id) as max from code" newid = sqls(sql)[0]['max'] num = json.dumps(hex(newid)) a = str( random.choice( [random.randrange(10), chr(random.randrange(65, 91))])) c = str( random.choice( [random.randrange(10), chr(random.randrange(65, 91))])) 激活码 = a + num[3:8] + c 激活码录入="INSERT INTO `code` (`code`,`userid`,`time`,`state`) select '%s',%s,NOW(),1" \ % (激活码,data['id']) 激活码录入 = sqls(激活码录入) return 激活码, else: return code[0]['code'], 0, '有未使用的激活码'
def 用户数据统计(data): #根据日期读取本周新会员量 sql = "select count(*) from user WHERE YEARWEEK(date_format(addVipTime,'%Y-%m-%d'),1) = YEARWEEK(now(),1);" sql2 = "select count(*) from user WHERE( vip =3 or vip =2 ) and state=1" 结果 = {} 结果['newvip'] = sqls(sql)[0]['count(*)'] 结果['allvip'] = sqls(sql2)[0]['count(*)'] #根据user标签读取本日会员量 return 结果,
def 使用激活码(data): print(data) 查 = "select * from code where state = 1 and code = '%s'" % (data['code']) 查 = sqls(查) if len(查) == 1: 改 = "UPDATE `dy`.`code` SET `useuser` = '%s', `state` = '2'" % ( data['id']) sqls(改) return '', 0, '购买成功' else: return '', -1, '激活码不正确或者已经被使用'
def 获取团队数量(data): 结果 = {} direct = "select COUNT(*) as n1 from user where referrer = %s" % ( data['id']) direct = sqls(direct) 结果['direct'] = direct[0]['n1'] indirect = "select COUNT(*) as n2 from (select * from user where referrer = %s)a, (select * from user)b where b.referrer = a.id;" % ( data['id']) indirect = sqls(indirect) 结果['indirect'] = indirect[0]['n2'] 结果['id'] = data['id'] return 结果,
def 获取直接下级(data): 结果 = sqls("select nick,vip,phone,id from user where referrer = %s" % (data['id'])) if 结果 == "sqlbug": return '', -101, 'token解析错误' k = 0 for a in 结果: m = "select count(*) as n from user where referrer = %s" % (int( a['id'])) m = sqls(m) 结果[k]['num'] = m[0]['n'] k = k + 1 return 结果,
def 更新(name,value=None): data=request.form.to_dict() if name =="up": get=request.args 更新="INSERT INTO `updates` (`ver_ios`, `ver_apk`) VALUES ('%s', '%s')" % (get['ver_ios'],get['ver_apk']) 更新=sqls(更新) return json.dumps('更新成功') elif name =="update": 读取="select * from updates order by id desc limit 0,1" 读取 = sqls(读取) 版本={"sysver_apk":读取[0]['ver_apk'],"downurl_apk":'https://douyunzhibo.oss-cn-chengdu.aliyuncs.com/updata/douyun.apk', "sysver_ios":读取[0]['ver_ios'],"downurl_ios":'',"ver_info": 读取[0]['ver_info']} return json.dumps(版本)
def 修改签名(data): 签名 = "UPDATE `dy`.`user` SET `sign` = '%s' WHERE `id` = %s" % ( data['sign'], data['id']) 签名 = sqls(签名) if 签名 == "sqlbug": return '', -1, '未找到id' else: return '', 0, '修改成功'
def 标签(data): if str(data['type']) == "type": sql = "SELECT name,id as typeid from type where type = 'type'" else: sql = "SELECT name,id as typeid from type where type = '%s'" % (str( data['type'])) 结果 = sqls(sql) return 结果,
def 收藏举报关注等(data): #1收藏2点赞3举报4关注 #视频id,视频封面,视频点赞, if data['type'] == "1": 收藏="select c.nick as authorname,b.looknum,b.goodnum,b.name as videoname,b.id as videoid,b.img as videoimg,b.video as videourl from likes a left join video b on a.video = b.id left join user c on b.user = c.id where a.type = 1 and a.user= %s" \ % (data['id']) 收藏 = sqls(收藏) 收藏 = 批量视频解析(收藏) return 收藏, elif data['type'] == "4": 关注="select user.picture,user.fans,user.nick,user.vip from likes left join user on likes.video=user.id where likes.type=4 and likes.user =%s" \ % (data['id']) 关注 = sqls(关注) return 关注, else: return '', -1, 'type不存在'
def 发消息(data): 时间 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) sql = "INSERT INTO `speak` (`time`, `info`, `user`, `type`, `video`) VALUES ('%s', '%s','%s','%s','%s');" \ % (时间,data['info'],data['id'],1,data['video']) s = sqls(sql) if len(s) > 0: return "[]", 0, '插入成功' else: return "[]", -201, '未知错误'
def 读消息(data): sql = "SELECT info from speak where video = '%s' GROUP by time desc LIMIT %s" % ( data['video'], int(data['num'])) 结果 = sqls(sql) a = dict() a['info'] = '123432' if len(结果) < 4: 结果.append(a) return 结果,
def 增剪金额(num, userid, type): if type == "增金币": 增 = "UPDATE `dy`.`user` SET `gold` =`gold`+ '%s' WHERE `id` = %s" % ( num, userid) elif type == "增积分": 增 = "UPDATE `dy`.`user` SET `gold` =`gold`+ '%s' WHERE `id` = %s" % ( num, userid) elif type == "减金币": usergold = "select gold from user where id = %s;" % (userid) usergold = sqls(usergold) print(usergold[0]['gold']) g = int(usergold[0]['gold']) - int(num) if g >= 0: 提现 = "UPDATE `dy`.`user` SET `gold` = '%s' WHERE `id` = %s;" % ( g, userid) 提现 = sqls(提现) return g else: return g
def token(data): 查 = "select id as token,phone,address,referrer,vip,gold,lasttime,authentication,picture,nick,sign from user where id = '%s'" % data[ 'id'] 查 = sqls(查) if len(查) == 0: return '[]', -2, '用户id异常,请查询是否异常。' else: 查[0]['userid'] = int(查[0]['token']) + 168000 查[0]['token'] = idtoken(查[0]['token']) return 查,
def 绑定银行卡(data): if len(data['code']) != 6: return '', -1, "验证码错误" 更新银行卡 = "INSERT INTO `dy`.`bank`(`userid`,`username`, `bankname`,`bankaddress`, `bankcardno`,`alipay`,type) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')" \ % (data['id'],data['username'],data['bankname'], data['bankaddress'],data['bankcardno'],data['alipay'],1) 更新银行卡 = sqls(更新银行卡) if 更新银行卡 == "sqlbug": return '', -1, '修改失败' else: return '', 0, '银行卡修改成功'
def 获取视频列表(data): #标题,作者,总观看数,视频封面,点赞数 标签 = data['type'] 页码 = int(data['page']) 每页数 = int(data['num']) sql = "select a.id,a.name,b.nick as author,a.img,a.looknum,a.goodnum,a.type2,a.type,a.video as videourl from video a LEFT OUTER JOIN user b on a.user = b.id where type = '%s' LIMIT %s,%s" \ % (标签,(页码-1)*每页数,每页数) 结果 = sqls(sql) 结果 = 批量视频解析(结果) return 结果,
def 修改地址头像(data): if data['type'] == "1": 更新头像 = "UPDATE `user` SET `nick` = '%s' WHERE `id` = %s" % ( data['name'], data['id']) 更新头像 = sqls(更新头像) if 更新头像 == "sqlbug": return '[]', -3, '修改失败' else: return '[]', 1, '修改成功' elif data['type'] == "2": password = data['password'] password = password.encode(encoding='utf-8') password = hashlib.md5(password).hexdigest() 更新密码 = "UPDATE `user` SET `password` = '%s' WHERE `id` = %s" % ( password, data['id']) 更新密码 = sqls(更新密码) if 更新密码 == "sqlbug": return '[]', -3, '修改失败' else: return '[]', 1, '修改成功'
def 找回密码(data): #判断手机是否注册 查手机 = "select * from user where phone = '%s' " % (data['phone']) 查手机 = sqls(查手机) if len(查手机) != 1: return '', -1, '手机号不存在。' #判断验证码是否正确 if 验证码判断(data['phone'], data['code'], 3) < 0: return '', -3, '验证码不正确' else: password = data['password'] password = password.encode(encoding='utf-8') password = hashlib.md5(password).hexdigest() 更新密码 = "UPDATE `user` SET `password` = '%s' WHERE `id` = %s" % ( password, data['phone']) 更新密码 = sqls(更新密码) if 更新密码 == "sqlbug": return '[]', -3, '修改失败' else: return '[]', 1, '修改成功'
def 我的收藏(data): # 1收藏2点赞3举报4关注 #获取收藏列表,名字,点赞数 if data['type'] == '1': 收藏 = "select b.id as video,name,img,goodnum,b.type,b.video as getvideo from likes a left join video b on a.video = b.id where a.user = %s and type=1" \ % (data['id']) 结果 = sqls(收藏) 结果 = 批量视频解析(结果) elif data['type'] == '4': #用户名字,粉丝量,最新视频,点赞,视频总数。 关注 = "select b.nick,b.fans,b.id from likes a left join user b on a.video = b.id where type =4 and a.user = %s;" % ( data['id']) 关注 = sqls(关注) 结果 = list() for a in 关注: 查 = "select count(*) as videonum from video where user = %s;" % ( a['id']) 查 = sqls(查) a.update(查[0]) 结果.append(a) return 结果,
def 修改密码(data): if len(data['code']) != 6: return '[]', -1, '验证码不正确' password = data['password'] password = password.encode(encoding='utf-8') password = hashlib.md5(password).hexdigest() 更新密码 = "UPDATE `user` SET `password` = '%s' WHERE `id` = %s" % (password, data['id']) 更新密码 = sqls(更新密码) if 更新密码 == "sqlbug": return '[]', -3, '修改失败' else: return '[]', 1, '修改成功'
def 金币购买(data): #type=1 金币购买,2提现,3充值 if data['goodid'] == "1": m = 365 else: return '', -1, '商品信息错误' gold = 增剪金额(m, data['id'], '减金币') if gold >= 0: 改 = "UPDATE `dy`.`user` SET `vip` = 3,WHERE `id` = 25" 改 = sqls(改) return gold, 0, '购买成功' else: return gold, -1, '金币不足购买失败'
def 充值接口(data): name = "抖云充值" goodid = sql.goodid(data['id']) #goodid = "2019111118282550016571600001" money = data['money'] goodinfo = "1元等于1金币" url = "http://pay.dyzbed.com/wappay/apppay.php?goodid=%s&name=%s&goodinfo=%s&money=%s" % ( goodid, name, goodinfo, money) url = requests.get(url) url = url.text.replace("&", "&") goodname = "充值金币" 增 = "INSERT INTO `dy`.`orderid`(`orderid`, `userid`, `goodname`, `money`, `type`, `status`, `pay`,`time`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s',NOW())" \ % (goodid, data['id'], goodname, money, '支付中', 1,'支付宝') 增 = sqls(增) return url,
def 年卡购买(data): name = "抖云智播年卡会员" goodid = sql.goodid(data['id']) money = 365 goodinfo = "可以在一年之内免费观看抖云智播的所有视频" url = "http://pay.dyzbed.com/wappay/apppay.php?goodid=%s&name=%s&goodinfo=%s&money=%s" % ( goodid, name, goodinfo, money) url = requests.get(url) url = url.text.replace("&", "&") goodname = "充值金币" 增 = "INSERT INTO `dy`.`orderid`(`orderid`, `userid`, `goodname`, `money`, `type`, `status`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')" \ % (goodid, data['id'], goodname, money, '支付中', 1) 增 = sqls(增) #生成未付款订单 return url,
def 登录(data): if data['password'] == None or data['phone'] == None: return '账号密码不能为空', -1 if 手机验证(data['phone']) < 0: return '手机格式不正确', -1 password = data['password'] password = password.encode(encoding='utf-8') password = hashlib.md5(password).hexdigest() 登录 = "select id as token,phone,address,referrer,vip,gold,lasttime,authentication,picture,nick from user where phone = '%s' and password='******'" % ( data['phone'], password) 登录 = sqls(登录) if len(登录) > 0: 登录[0]['token'] = idtoken(登录[0]['token']) return 登录, else: return "[]", -1, "账号密码错误"
def 获取视频内容(data): #随机获取视频增加免费和收费的限定 if data['videoid'] == '1': 随机查询 = 'SELECT t1.id FROM `video` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `video`)-(SELECT MIN(id) FROM `video`))+(SELECT MIN(id) FROM `video`)) AS id) AS t2 WHERE t1.id >= t2.id and state = 1 ORDER BY t1.id LIMIT %s;' % ( data['pagesize']) 随机 = sqls(随机查询) 结果 = list() for i in 随机: 视频 = i['id'] sql = "select a.name as videoname,a.id as videoid,b.nick as username,b.id as userid, a.video,b.picture as userimg from video a LEFT OUTER JOIN user b on a.user = b.id where a.id = %s;" \ % (视频) 随机结果 = sqls(sql) 收藏情况 = sqls( "select count(*) from likes where user = %s and video = %s and type=1" % (data['id'], 视频)) 点赞情况 = sqls( "select count(*) from likes where user = %s and video = %s and type=2" % (data['id'], 视频)) 解析 = 视频地址解析(随机结果[0]['video']) #解析 = 视频地址解析("97d912bcaf354defb5177f8d54344bc4") 随机结果[0]['type'] = 解析['VideoBase']['Title'] 随机结果[0]['video'] = 解析['PlayInfoList']['PlayInfo'][0]['PlayURL'] 随机结果[0]['img'] = 解析['VideoBase']['CoverURL'] 随机结果[0]['collection'] = 收藏情况[0]['count(*)'] 随机结果[0]['good'] = 点赞情况[0]['count(*)'] 结果.append(随机结果[0]) return 结果, else: sql = "select a.id as videoid,b.id as userid, a.video,a.state,b.picture from video a LEFT OUTER JOIN user b on a.user = b.id where a.id = %s;" \ % (int(data['videoid'])) 结果 = sqls(sql) #获取是否收藏,举报,点赞 if len(结果) == 1: 收藏情况 = sqls( "select count(*) from likes where user = %s and video = %s and type=1" % (data['id'], data['videoid'])) 点赞情况 = sqls( "select count(*) from likes where user = %s and video = %s and type=2" % (data['id'], data['videoid'])) 结果[0]['collection'] = 收藏情况[0]['count(*)'] 结果[0]['good'] = 点赞情况[0]['count(*)'] 解析2 = 视频地址解析(结果[0]['video']) #解析2 = 视频地址解析("97d912bcaf354defb5177f8d54344bc4") 结果[0]['videoname'] = 解析2['VideoBase']['Title'] 结果[0]['video'] = 解析2['PlayInfoList']['PlayInfo'][0]['PlayURL'] 结果[0]['picture'] = 解析2['VideoBase']['CoverURL'] else: 结果 = '视频未找到' return 结果,
def 获取银行信息(data): 查 = "select `username`, `bankname`,`bankaddress`, `bankcardno`,`alipay` from bank where userid = %s order by id desc" % data[ 'id'] #bankCardNo: "", bankName: "", bankAddress: "" 值 = sqls(查) if 值 == "sqlbug": return '', -1, 'token解析异常' if len(值) == 0: 空值 = dict() 空值['username'] = "******" 空值['bankname'] = "未绑定" 空值['bankaddress'] = "未绑定" 空值['bankcardno'] = "未绑定" 空值['alipay'] = "未绑定" return 空值, 0, '' else: return 值[0],
def 获取排行信息(data): # #排行榜需要精确到周,目前是所有的排行榜 # if data['type'] == '1': 分类 = 'looknum' elif data['type'] == '2': 分类 = 'goodnum' elif data['type'] == '3': 分类 = 'collectionnum' else: return '分类不存在' 页码 = int(data['page']) 每页数 = int(data['num']) sql = "select a.name,a.%s as num,b.phone from video a LEFT OUTER JOIN user b on a.user = b.id ORDER BY %s DESC LIMIT %s,%s" % ( 分类, 分类, (页码 - 1) * 每页数, 每页数) 结果 = sqls(sql) return 结果,
def 发短信(data): if int(data['type']) == 1: 查询 = sqls("select count(*) as n from user where phone = %s" % data['tel']) if 查询[0]['n'] > 0: return data['tel'] + '已注册', -1, '手机号已注册。' elif int(data['type']) == 3: 查询 = sqls("select count(*) as n from user where phone = %s" % data['tel']) if 查询[0]['n'] == 0: return data['tel'] + '不存在', -1, '手机号尚未注册。' code = random.randrange(100000, 999999) sqls("UPDATE `dy`.`smscode` SET `state` = '2' WHERE phone = %s" % (data['tel'])) sqls( "INSERT INTO `dy`.`smscode`(`code`, `type`, `phone`, `time`, `state`) VALUES ('%s', '%s', '%s', NOW(), '1')" % (code, data['type'], data['tel'])) a = 短信(data['tel'], int(data['type']), code) return a, 0, "验证码发送成功"