美文网首页
服务端-代码

服务端-代码

作者: skoll | 来源:发表于2022-02-12 15:08 被阅读0次
from flask import Flask,request,jsonify
from excel import highvalue,item,reward,mall,general,baodai,getNpc
from flask_cors import *
# from io import BytesIO
import sys 
import base64

app=Flask(__name__)
CORS(app)

@app.route('/')
def hello():
    return app.send_static_file('index.html')

@app.route('/search',methods=['POST'])
def postDir():
    if request.method=="POST": 
        searchText=request.get_json()['searchText']
        dev=request.get_json()['dev']
        re=[]
        isItem=False
        isReward=False
        if searchText.isnumeric():
            rewardValue=reward.main(searchText,dev)
            
            if(rewardValue['status']=='ok'):
                re.append([rewardValue['data']])
                isReward=True
            else:
                itemValue=item.getNum(searchText,dev)
                if(itemValue['status']=='ok'):
                    re.append(itemValue['data'])
                    isItem=True
        else:
            itemValue=item.getName(searchText,dev)
            if(itemValue['status']=='ok'):
                re.append(itemValue['data'])
                isItem=True
            
        if len(re)!=0:
            if isItem:
                returnNumber=1
            elif isReward:
                returnNumber=2
            else:
                returnNumber=3
            return jsonify({
                'status':'ok',
                'data':re[0],
                'returnNumber':returnNumber
            })
        else:
            return jsonify({
                'status':'no',
                'msg':'查找的信息不存在,或者表格样式有问题'
            })
    else:
        return jsonify({
            'status':'ok',
            'msg':'输入正确的格式'
        })

@app.route('/huodong_item',methods=['POST'])
def postItem():
    if request.method=='POST':
        searchText=request.get_json()['searchText']
        re=item.main(searchText)
        if(re['status']=='ok'):
            return jsonify({
                'status':'ok',
                'data':re['data'],
                'returnNumber':1,
                'itemNextIndex':re['itemNextIndex']
            })
        else:
            return jsonify({
                'status':'no',
                'msg':'查找的信息不存在,一定是输入的活动索引有问题'
            })

@app.route('/lq',methods=['POST'])
def postLq():
    if request.method=='POST':
        searchText=request.get_json()['searchText']
        index=request.get_json()['index']
        re=general.get_list(searchText,index)
        return jsonify({
                'status':'ok',
                'msg':re
            })
# 给一个礼券名字,返回可能抽到的武将

# 爵印宝袋
@app.route('/baodai',methods=['POST'])
def postBaodai():
    if request.method=='POST':
        dev=request.get_json()['dev']
        searchText=request.get_json()['searchText']
        re=baodai.main(searchText,dev)
        return jsonify({
            're':re
        })
        
@app.route('/test',methods=['GET'])
def show_test2():
    print('LALAL')
    return '2222222'

# @app.route('/test',methods=['GET'])
# def show_test():
#     print(request)
#     return '1111111111'



@app.route('/upload',methods=['POST'])
def upload():
    print('-------->')
    print(request.files)
    print(request.form)
    if request.method=="POST" and 'file' in request.files:
        # filename=photos.save(request.files['file'])
        # file_url=photos.url(filename)
        file=request.files['file'].read()
        with open('C:/Users/wb.lbte/Desktop/go/name.jpeg','wb') as f:
            f.write(base64.b64encode(file))
        return jsonify({
            "ststus":"ok"
        })
    else:
        print("没有取到")
        
        return jsonify({
            "ststus":'no'
        })


@app.route("/hashCheck",methods=["POST"])
def hashCheck():
    if request.method=="POST":
        print(request.form)
        hashValue=request.form["hash"]
        if hashValue!="" and hashValue=="1":
            return jsonify({
                "status":"1"
                # 正常返回,这个文件已经上传过了,不用在上传了.
            })
        else:
            return jsonify({
                "status":"0",
                # 没有上传过
                "list":[1,3,4]
                # 返回已经上传的文件块

                # "list":[]
                # 一个都没有上传的时候就是这样的
            })

        return jsonify({
            "status":request.form["hash"]
        })

    return jsonify({
            "status":"asdf333333333"
        })

@app.route("/chain",methods=["POST"])
def testchain():
    id=request.form['id']
    
    if id=="1" or id =="2":
        return jsonify({
            "status":"no",
            "id":id
        })
    else:
        return jsonify({
            "status":"ok",
            "id":id
        })


@app.route("/getNpc",methods=["POST"])
def getNpcMain():
    if request.method=="POST":
        searchText=request.get_json()['searchText']
        dev=request.get_json()['dev']
        if searchText.isnumeric():
            re=getNpc.getNpcTeam(searchText,dev)
            return jsonify({
                "status":"ok",
                "data":re
            })
        else:
            print('输入的不是数字,不做处理')

@app.route('/set')

@app.route('/postFile',methods={"POST"})
def postFile():
    if request.method=="POST":
        print(request.files)
        return jsonify({
            "stattus":"asdf"
        })
    return jsonify({
            "stattus":"asdf"
        })
if __name__ == '__main__':
    app.config['JSON_AS_ASCII'] = False
    app.run(port=8080,debug=True)

import xlrd
import excel.item as item

reward_loc=r'C:\Users\wb.lbte\Desktop\excel\reward.xls'

reward_rx=r'C:\Users\wb.lbte\Desktop\rx-trunk-ex\reward.xls'

def add(x,title,yy,itemcolValue,dev):
    if(isinstance(yy,float)):
        re=[]
        re.append(item.simpleGet(yy,dev))
        if(str(itemcolValue[x+1])!=''):
            re.append({
                'name':title[x+1]+' : '+str(itemcolValue[x+1]),
            })
        else:
            re.append({
                'name':title[x+1]+' : '+'注意属性为空,是否需要填表',
            })

        
        re.append({
            'name':title[x+2]+' : '+str(itemcolValue[x+2]),
        })
        return {
            'name':title[x],
            'children':re
        }
    else:
        re=[]
        re.append({
            'name':title[x]+' : '+str(yy)[:-2],
        })
        re.append({
            'name':title[x+1]+' : '+itemcolValue[x+1],
        })
        re.append({
            'name':str(title[x+2])+' : '+str(itemcolValue[x+2]),
        })
        return {
            'name':title[x],
            'children':re
        }

    
def addjiang(xx,yy,title,itemcolValue,dev):
    if(isinstance(yy,float)):
        ree=[]
        # ree.append({
        #     'name':title[xx]+' : '+str(yy)[:-2],
        # })
        ree.append(item.simpleGet(yy,dev))
        ree.append({
            'name':title[xx+1]+' : '+itemcolValue[xx+1],
        })
    
        return {
            'name':title[xx],
            'children':ree
        }
    else:
        ree=[]
        r=[x for x in yy.split(',')]
        name_r_chilren=[]
        # for x in r:
        #     if x.isnumeric():
        #         name_r_chilren.append(item.simpleGet(x)['name'])
        #     else:

        if(len(r)>=2) and r[0].isnumeric():
            for x in r:
                name_r_chilren.append(item.simpleGet(x)['name'])
            ree.append({
            'name':name_r_chilren
            })
            ree.append({
                'name':title[xx+1]+' : '+str(itemcolValue[xx+1]),
            })
            return {
                'name':title[xx],
                'children':ree
            }
        else:
            ree.append({
            'name':title[xx]+' : '+str(itemcolValue[xx])
            })
            ree.append({
                'name':title[xx+1]+' : '+str(itemcolValue[xx+1]),
            })
            return {
                'name':title[xx],
                'children':ree
            }

        

   
def tesh(xx,yy,title,itemcolValue,key):
    r1={
        'name': title[xx]+' : '+str(key[yy]),
    }
    r2={
        'name':str(title[xx+1])+' : '+str(itemcolValue[xx+1]),
    }

    r3={
        'name':title[xx+2]+' : '+str(itemcolValue[xx+2]),
    }

    re=[]
    re.append(r1)
    re.append(r2)
    re.append(r3)
    return {
        'name':title[xx],
        'children':re
    }

def addjiang2(xx,yy,title):
    re=''
    if isinstance(yy,float):
        re=int(yy)
    else:
        re=yy
        
    return {
        'name': str(title[xx])+' : '+str(re),
        'value':yy,
    }
te={
    'bxp':'宠物经验','hxp':'座骑游戏','wujiang':'武将好感度','energy':'活力值','orgsc':'势力贡献','shimen':'师门贡献','wuxun':'武勋值','mingjianghun':'名将魂积分','fuben':'副本积分','huodong':'活动积分','xiuxianwanfa':'休闲玩法','xiayi':'侠义积分','jierihuodong':'节日活动','jiangxingling':'将星令','duizhang':'队长','jianghun':'将魂','xinfa':'心法'
}

def main(num,dev):
    if dev==0:
        data=xlrd.open_workbook(reward_loc)
    elif dev==1:
        data=xlrd.open_workbook(reward_rx)

    table=data.sheet_by_index(1)
    title=table.row_values(0)
   
    numid=table.col_values(0)
    numid.pop(0)
    isFind=False
    for [x,y] in enumerate(numid):
        if int(num)==int(y):
            isFind=True
            itemcolValue=table.row_values(x+1)
            obj={}
            objChildren=[]
            obj['children']=objChildren

            jiang={}
            jiang['name']="必得奖励"
            objjiang=[]
            jiang['children']=objjiang

            suiji={}
            suiji['name']='随机奖励'
            objsuiji=[]
            suiji['children']=objsuiji

            teshu={}
            teshu['name']='特殊奖励'
            objteshu=[]
            teshu['children']=objteshu

            jinggao={}
            jinggao['name']='警告'
            objjinggao=[]
            jinggao['children']=objjinggao

            qita={}
            qita['name']='其他奖励'
            objqita=[]
            qita['children']=objqita

            gonggao={}
            gonggao['name']='奖励公告'
            objgonggao=[]
            gonggao['children']=objgonggao

            duizhang={}
            duizhang['name']='队长奖励'
            objduizhang=[]
            duizhang['children']=objduizhang

            for [xx,yy] in enumerate(itemcolValue):
                if(    xx==23 or xx==25 or xx==27 or xx==29 or xx==31 or
                       xx==33 or xx==34 or xx==36 or xx==37 or xx==39 or 
                       xx==40 or xx==42 or xx==43 or xx==45 or xx==46 or 
                       xx==48 or xx==49 or xx==51 or xx==52
                       or xx==54 or xx==55 or xx==57 or xx==58 or xx==66 or xx==67 
                       or xx==63 or xx==64 or xx==60 or xx==61 or xx==69 or xx==70
                       or xx==72 or xx==73 or xx==75 or xx==76 or xx==78 or xx==79
                       or xx==81 or xx==82  or xx==92 
                       or xx==87 or xx==89 or xx==91):
                    # 跳过的项  
                    continue
                elif (xx==1):
                    obj['name']=str(yy)
                elif(xx>=2 and xx<=9):
                    # 警告
                    if(yy!=''):
                        objjinggao.append(addjiang2(xx,yy,title))              
                elif (xx>=10 and xx<=21  or xx==95 or xx==96 or xx==97 or xx==98):
                    # 其他奖励
                    if(yy!=''):
                        objqita.append(addjiang2(xx,yy,title))
                elif(xx==22 or xx==24 or xx==26 or xx==28 or xx==30):
                    # 必得
                    if(yy!=''):
                        objjiang.append(addjiang(xx,yy,title,itemcolValue,dev))
                        # print(objjiang)
                elif(xx==53 or xx==56 or xx==50 or xx==47 or xx==44 or xx==41 or xx==38 or xx==35 or xx==32 or xx==59 or xx==62 or xx==65):
                    # 随机
                    if(yy!='') and isinstance(yy,float):
                         objsuiji.append(add(xx,title,yy,itemcolValue,dev))
                    elif (yy!=''):
                        cellsuiji=[c for c in yy.split(',')]
                        if(len(cellsuiji)>1):
                            reobj={}
                            reobj['name']=title[xx]

                            reobjArr=[]
                            reobjArr.append(add(xx,title,yy,itemcolValue,dev)['children'][1])
                            reobjArr.append(add(xx,title,yy,itemcolValue,dev)['children'][2])
                            for x in cellsuiji:
                                reobjArr.append(item.simpleGet(x,dev))
                            reobj['children']=reobjArr
                            objsuiji.append(reobj)
                        else:
                            objsuiji.append(add(xx,title,yy,itemcolValue,dev))

                elif(xx==68 or xx==71 or xx==74 or xx==77 or xx==80 or xx==83):
                    # 特殊
                    if(yy!=''):
                        objteshu.append(tesh(xx,yy,title,itemcolValue,te))
                elif(xx==83 or xx==84 or xx==85):
                    # 队长
                    if(yy!=''):
                        objduizhang.append(addjiang2(xx,yy,title))

                elif(xx==86 or xx==88 or xx==90):
                    # 公告
                    if(yy!=''):
                        objgonggao.append(addjiang(xx,yy,title,itemcolValue,dev))

            objChildren.append(jiang)
            objChildren.append(suiji)
            objChildren.append(teshu)
            objChildren.append(jinggao)
            objChildren.append(qita)
            objChildren.append(duizhang)
            objChildren.append(gonggao)
            # print(obj)
            if(obj):
                return {
                    'status':'ok',
                    'data':obj
                }
            else:
                return {
                    'status':'noOk',
                    'msg':'没有找到对应的reward'
                }

    if not isFind:
        return {
                'status':'noOk',
                'msg':'没有找到对应的reward'
            }

                
    
def getSome(arr):
    re=[]
    for x in arr:
        re.append(main(x,0))
    if(len(re)):
        return {
            'status':'ok',
            'data':re
        }
    else:
        return {
            'status':'no',
            'msg':'没有找到对应的reward'
        }

def getHuodong(x,dev):
    # x为本次活动的初始奖励id
    data=xlrd.open_workbook(reward_loc)
    table=data.sheet_by_index(1)
    colNum=table.nrows
    re=[]
    ncols=table.col_values(0)
    ncols.pop(0)
    for [i,y] in enumerate(ncols):
        if int(y)==x:
            startIndex=i+1
    for i in range(colNum-startIndex):
        re.append(main(int(table.row(startIndex+i)[0].value),dev))

    # return re
    if(len(re)):
        return {
            'status':'ok',
            'data':re
        }
    else:
        return {
            'status':'no',
            'data':'请在次确认输入的id'
        }

相关文章

网友评论

      本文标题:服务端-代码

      本文链接:https://www.haomeiwen.com/subject/ahgwkrtx.html