コード例 #1
0
ファイル: appreadact.py プロジェクト: zhangji85/zbook-amin
def updshelfstatus(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-updshelfstatus-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "操作成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    status = request_body.get('status', None)
    fileid = request_body.get('fileid', None)

    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s
    upd_sql = "update book_shelf set status=%s where file_id=%s and user_id=%s"
    cur = connection.cursor()
    cur.execute(upd_sql, (status, fileid, uid))
    connection.commit()
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-updshelfstatus-end---------------------------'
    )
    return HttpResponse(s)
コード例 #2
0
ファイル: useract.py プロジェクト: zhangji85/zbook-amin
def logincheck(request, reqest_body):
    log = public.logger
    log.info(
        '----------------------Admin-logincheck-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "已退出!",
        "trantype": reqest_body.get('trantype', None),
    }

    try:
        username = request.session.get('username')
    except:
        s = public.setrespinfo({"respcode": "100004", "respmsg": "操作失败!"})
        return s
    else:
        if username:
            jsondata['username'] = username
        else:
            s = public.setrespinfo({"respcode": "100005", "respmsg": "未登录!"})
            return s

    s = json.dumps(jsondata, cls=JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-logincheck-end---------------------------'
    )
    return HttpResponse(s)
コード例 #3
0
def admin(request):
    log = public.logger
    log.info(
        '----------------------appreadact_begin---------------------------')

    if request.method == "POST":
        # #请求body转为json
        tmp = request.body
        tmp = tmp.decode(encoding='utf-8')
        request_body = json.loads(tmp)
        trantype = request_body['trantype']
        log.info('trantype=[%s]' % trantype)
        fun_name = trantype
        if globals().get(fun_name):
            resp = globals()[fun_name](request, request_body)
        else:
            s = public.setrespinfo({
                "respcode": "100000",
                "respmsg": "api error"
            })
            resp = HttpResponse(s)

    elif request.method == "GET":
        s = public.setrespinfo({"respcode": "000000", "respmsg": "api error"})
        resp = HttpResponse(s)

    log.info('----------------------appreadact_end---------------------------')
    return resp
コード例 #4
0
def handdoc(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-handdoc-begin---------------------------')
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    filename = request_body.get('filename', None)
    file = request_body.get('file', None)
    classvalue = request_body.get('classvalue', None)
    contentinfo = request_body.get('contentinfo', None)
    share = request_body.get('share', None)

    solts_dict = {}
    # 查询分类列表
    solts_sql = "select * from zbookapp_soltslist"
    cur = connection.cursor()
    cur.execute(solts_sql)
    rows = cur.fetchall()
    for item in rows:
        solts_dict[item[1]] = item[0]
    if share:
        share = 1
    else:
        share = 0
    if classvalue:
        classvalue = solts_dict[classvalue]
    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s

    if file:
        md5_filename = savedoc(filename, file)
        nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        sql = "INSERT INTO zbookapp_bookfile(user_id, file_name, md5_name, tran_date, status, msg, name) VALUES (%s, %s, %s, %s, %s, %s, %s)"
        cur = connection.cursor()
        tuple = (uid, filename, md5_filename, nowTime, share, contentinfo,
                 classvalue)
        cur.execute(sql, tuple)
        cur.close()

    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-handdoc-end---------------------------')
    return HttpResponse(s)
コード例 #5
0
def updUserinfo(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-updUserinfo-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "保存成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    userinfo = request_body.get('userinfo', None)
    print(uid)
    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s
    path = None
    if userinfo['userprofile']:
        print('url=', userinfo['userprofile'][0].get('url', None))
        if not userinfo['userprofile'][0].get('url', None):
            filename = userinfo['userprofile'][0]['name']
            file = userinfo['userprofile'][0]['content']
            print(filename, file)
            path = saveimg(filename, file)
        else:
            url = userinfo['userprofile'][0].get('url', None)
            filename = url.split('/')[-1]
            path = 'userpro/' + filename
    upd_sql = "UPDATE zbookapp_user SET userprofile=%s, nickname=%s, sex=%s, location=%s, email=%s, signature=%s, upd_date=%s WHERE user_id=%s "
    if userinfo:
        sexdict = {'男': 0, '女': 1, '未知': 2}
        sex = sexdict[userinfo['sex']]
        nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        tuple = (path, userinfo['nickname'], sex, userinfo['location'],
                 userinfo['email'], userinfo['signature'], nowTime, uid)
        print('tuple=', tuple)
        cur = connection.cursor()
        cur.execute(upd_sql, tuple)
        connection.commit()
        cur.close()
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-updUserinfo-end---------------------------'
    )
    return HttpResponse(s)
コード例 #6
0
ファイル: appreadact.py プロジェクト: zhangji85/zbook-amin
def create_answer(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-create_answer-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "处理完成",
        "trantype": request_body.get('trantype', None),
    }

    question = request_body.get('question', None)
    fileid = request_body.get('fileid', None)
    if not fileid:
        s = public.setrespinfo({"respcode": "400001", "respmsg": "文件不存在!"})
        return s
    if len(question) == 0:
        s = public.setrespinfo({"respcode": "400002", "respmsg": "请输入问题!"})
        return s
    # 查询文件信息
    file_sql = "select * from zbookapp_bookfile where file_id = %s "
    cur = connection.cursor()
    cur.execute(file_sql, fileid)
    row = cur.fetchone()
    if row:
        md5_filename = row[3]
        md5file = md5_filename.split('.')[0]
        data_path = public.localhome + "fileup//" + md5_filename
        # print('执行到这了')
        # # time.sleep(5)
        tmp_answer = []
        try:
            tmp_answer = alloperate(md5file, data_path, question)
        except Exception as e:
            print('e=', e)
        answer = []
        if tmp_answer:
            for index, item in enumerate(tmp_answer):
                tmp_lineid = str(item['line_id'])
                item['line_id'] = tmp_lineid
                item['label'] = '答案' + str(index + 1)
                answer.append(item)
        jsondata['answerlist'] = answer
    else:
        s = public.setrespinfo({"respcode": "400001", "respmsg": "文件不存在!"})
        return s

    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-create_answer-end---------------------------'
    )
    return HttpResponse(s)
コード例 #7
0
ファイル: appreadact.py プロジェクト: zhangji85/zbook-amin
def joincol(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getbookinfo-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    fileid = request_body.get('fileid', None)
    coltext = '收藏'

    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s
    select_sql = "select * from zbookapp_collection where file_id=%s and user_id=%s and status='0' "
    cur = connection.cursor()
    cur.execute(select_sql, (fileid, uid))
    row = cur.fetchone()
    if row:
        s = public.setrespinfo({"respcode": "300006", "respmsg": "已加入收藏!"})
        return s

    nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    try:
        join_sql = "INSERT INTO zbookapp_collection (file_id, user_id, tran_date, status) VALUES (%s, %s, %s, %s)"
        cur = connection.cursor()
        cur.execute(join_sql, (fileid, uid, nowTime, '0'))

        cur.close()
        coltext = '已收藏'
    except Exception as e:
        print(e)

    jsondata['coltext'] = coltext
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getbookinfo-end---------------------------'
    )
    return HttpResponse(s)
コード例 #8
0
ファイル: appreadact.py プロジェクト: zhangji85/zbook-amin
def joinshelf(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-joinshelf-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    fileid = request_body.get('fileid', None)
    shelftext = '加入书架'

    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s

    # 判断是否已经加入书架
    select_sql = "select * from book_shelf where user_id=%s and file_id=%s and status='0' "
    cur = connection.cursor()
    cur.execute(select_sql, (uid, fileid))
    row = cur.fetchone()
    if row:
        s = public.setrespinfo({"respcode": "300007", "respmsg": "已加入书架!"})
        return s

    try:
        join_sql = "INSERT INTO book_shelf(id, user_id, file_id, tran_date,upd_date, status) VALUES(%s, %s, %s, %s, %s, %s)"
        cur = connection.cursor()
        cur.execute(join_sql, (None, uid, fileid, datetime.datetime.now(),
                               datetime.datetime.now(), '0'))
        shelftext = '已加入书架'
    except Exception as e:
        print(e)

    jsondata['shelftext'] = shelftext
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-joinshelf-end---------------------------')
    return HttpResponse(s)
コード例 #9
0
def getuserpage(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getuserpage-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    userprofile = ''
    username = ''
    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    try:
        username, basicinfo, userprofile = userpage(uid)
    except Exception as e:
        print('e=', e)
    jsondata['username'] = username
    jsondata['basicinfo'] = basicinfo
    jsondata['userprofile'] = userprofile
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getuserpage-end---------------------------'
    )
    return HttpResponse(s)
コード例 #10
0
def getuserinfo(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getuserpage-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)

    userinfo = {
        'userid': uid,
        'username': '',  # 用户名
        'userprofile': [],  # 头像
        'nickname': '张先生',  # 昵称
        'sex': '男',  # 性别
        'location': '',  # 地区
        'email': '',  # email
        'signature': '听闻小姐治家有方,余生愿闻其详。'  # 个性签名
    }
    sexdict = {0: '男', 1: '女', 2: '未知'}
    userprofile = ''
    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if row:
            userprofile = []
            if models.User.objects.get(user_id=uid).userprofile:
                userprofile = public.localurl + models.User.objects.get(
                    user_id=uid).userprofile.url
                userprofile = [{'url': userprofile}]
            userinfo = {
                'userid': row[0],
                'username': row[1],  # 用户名
                'userprofile': userprofile,  # 头像
                'nickname': row[4],  # 昵称
                'sex': sexdict[row[5]],  # 性别
                'location': row[6],  # 地区
                'email': row[7],  # email
                'signature': row[8]  # 个性签名
            }
            for key in userinfo.keys():
                if not userinfo[key]:
                    userinfo[key] = ''
        else:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s

    jsondata['userinfo'] = userinfo
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getuserpage-end---------------------------'
    )
    return HttpResponse(s)
コード例 #11
0
ファイル: useract.py プロジェクト: zhangji85/zbook-amin
def register(request, reqest_body):
    log = public.logger
    log.info(
        '----------------------Admin-register-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "注册成功!",
        "trantype": reqest_body.get('trantype', None),
    }

    username = reqest_body.get('username', None)
    password = reqest_body.get('password', None)
    nowTime = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    if username and password:  # 用户名和密码不为空时,执行操作
        # 将用户名和密码,以及初始状态status=0插入数据库中
        # 若插入失败,抛出异常操作失败
        # 若插入成功,返回成功信息
        try:
            sql = "select * from zbookapp_user where username=%s"
            cur = connection.cursor()
            log.info(sql % username)
            cur.execute(sql, username)
            row = cur.fetchall()
            if row:
                s = public.setrespinfo({
                    "respcode": "100004",
                    "respmsg": "用户名已被注册!"
                })
                return s
            else:
                User.objects.create(username=username,
                                    password=password,
                                    tran_date=nowTime)
        except Exception as e:
            s = public.setrespinfo({"respcode": "100005", "respmsg": "注册失败!"})
            return s
    else:
        s = public.setrespinfo({"respcode": "100006", "respmsg": "缺少必要参数!"})
        return s

    s = json.dumps(jsondata, cls=JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-register-end---------------------------')
    return HttpResponse(s)
コード例 #12
0
ファイル: useract.py プロジェクト: zhangji85/zbook-amin
def login(request, reqest_body):
    log = public.logger
    log.info(
        '----------------------Admin-login-begin---------------------------')
    jsondata = {
        "respcode": "000000",
        "respmsg": "登录成功!",
        "trantype": reqest_body.get('trantype', None)
    }

    username = reqest_body.get('username', None)
    password = reqest_body.get('password', None)
    if username and password:
        try:
            # 根据前台传回的用户名查找密码和用户状态
            # 若查询失败,抛出异常错误
            # 若查询成功,判断密码是否正确和用户状态是否正常
            tmp_password = User.objects.get(username=username).password
            tmp_status = User.objects.get(username=username).status
            uid = User.objects.get(username=username).user_id
        except:
            s = public.setrespinfo({
                "respcode": "100001",
                "respmsg": "用户不存在,请先注册!"
            })
            return HttpResponse(s)
        else:
            if password == tmp_password and 0 == tmp_status:
                request.session["username"] = username
            else:
                s = public.setrespinfo({
                    "respcode": "100002",
                    "respmsg": "密码错误!"
                })
                return HttpResponse(s)
    else:
        s = public.setrespinfo({"respcode": "100003", "respmsg": "缺少必要参数!"})
        return HttpResponse(s)
    jsondata['uid'] = uid

    s = json.dumps(jsondata, cls=JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-login-end---------------------------')
    return HttpResponse(s)
コード例 #13
0
ファイル: appreadact.py プロジェクト: zhangji85/zbook-amin
def docpreview(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-docpreview-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "处理完成",
        "trantype": request_body.get('trantype', None),
    }

    fileid = request_body.get('fileid', None)
    begin_num = request_body.get('begin_num', 0)
    end_num = begin_num + 20
    if not fileid:
        s = public.setrespinfo({"respcode": "400001", "respmsg": "文档不存在!"})
        return s
    # 查询文件信息
    file_sql = "select * from zbookapp_bookfile where file_id = %s "
    cur = connection.cursor()
    cur.execute(file_sql, fileid)
    row = cur.fetchone()
    print('row=', row)
    if row:
        md5_filename = row[3]
        data_path = public.localhome + "fileup//" + md5_filename
        doc_data = read_data(data_path, begin_num, end_num)
        jsondata['doc_data'] = doc_data
        jsondata['begin_num'] = end_num + 1
    else:
        s = public.setrespinfo({"respcode": "400001", "respmsg": "文档不存在!"})
        return s

    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-docpreview-end---------------------------'
    )
    return HttpResponse(s)
コード例 #14
0
ファイル: useract.py プロジェクト: zhangji85/zbook-amin
def exit(request, reqest_body):
    log = public.logger
    log.info(
        '----------------------Admin-exit-begin---------------------------')
    jsondata = {
        "respcode": "000000",
        "respmsg": "已退出!",
        "trantype": reqest_body.get('trantype', None),
    }

    try:
        del request.session['username']
    except:
        s = public.setrespinfo({"respcode": "100004", "respmsg": "操作失败!"})
        return s

    s = json.dumps(jsondata, cls=JsonCustomEncoder, ensure_ascii=False)
    log.info('----------------------Admin-exit-end---------------------------')
    return HttpResponse(s)
コード例 #15
0
def getbookinfo(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getbookinfo-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    fileid = request_body.get('fileid', None)

    filename = ''
    fileinfo = ''
    shelftext = ''
    coltext = ''

    if uid:
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    file_sql = "select * from zbookapp_bookfile where file_id=%s "
    cur = connection.cursor()
    cur.execute(file_sql, fileid)
    row = cur.fetchone()
    if row:
        filename = row[2]
        fileinfo = row[-2]
    if uid:
        col_sql = "select * from zbookapp_collection where user_id = %s and file_id=%s and status= 0 "
        shelf_sql = "select * from book_shelf where user_id = %s and file_id=%s and status= 0"
        cur.execute(col_sql, (uid, fileid))
        row = cur.fetchone()
        if row:
            coltext = '已收藏'
        else:
            coltext = '收藏'

        cur.execute(shelf_sql, (uid, fileid))
        row = cur.fetchone()
        if row:
            shelftext = '已加入书架'
        else:
            shelftext = '加入书架'
    else:
        coltext = '收藏'
        shelftext = '加入书架'

    jsondata['filename'] = filename
    jsondata['fileinfo'] = fileinfo
    jsondata['coltext'] = coltext
    jsondata['shelftext'] = shelftext
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getbookinfo-end---------------------------'
    )
    return HttpResponse(s)
コード例 #16
0
ファイル: readact.py プロジェクト: zhangji85/zbook-amin
def getfilelist(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getfilelist-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }

    username = request_body.get('username', None)
    uid = ''

    if username == None:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s
    else:
        sql = "select user_id from zbookapp_user where username=%s"
        cur = connection.cursor()
        cur.execute(sql, username)
        row = cur.fetchone()
        cur.close()
        if row:
            uid = row[0]
        else:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s

    solts_dict = {}
    # 查询分类列表
    solts_sql = "select * from zbookapp_soltslist"
    cur = connection.cursor()
    cur.execute(solts_sql)
    rows = cur.fetchall()
    for item in rows:
        solts_dict[item[0]] = item[1]

    fileoptions = []
    upfile_dict = {'value': 'myupload', 'label': '我的上传', 'children': []}
    # 查询我的上传
    uplist_sql = "select * from zbookapp_bookfile where user_id=%s and name=%s and status!= -1 "
    soltnum_sql = "select name from zbookapp_bookfile where user_id = %s and status!= -1 group by name"
    cur = connection.cursor()
    cur.execute(soltnum_sql, uid)
    solts1_rows = cur.fetchall()
    if solts1_rows:
        for item in solts1_rows:
            tmp_dict = {
                'value': item[0],
                'label': solts_dict[item[0]],
                'children': []
            }
            cur.execute(uplist_sql, (uid, item[0]))
            file_rows = cur.fetchall()
            if file_rows:
                for file in file_rows:
                    tmp = {
                        'value': file[0],
                        'label': file[2],
                    }
                    tmp_dict['children'].append(tmp)
            upfile_dict['children'].append(tmp_dict)
    fileoptions.append(upfile_dict)

    # 查询我的收藏
    collfile_dict = {'value': 'mycollection', 'label': '我的收藏', 'children': []}
    collist_sql = "select file_id from zbookapp_collection where user_id=%s and status= 0 "
    file_sql = "select * from zbookapp_bookfile where file_id = %s and status=1"
    cur = connection.cursor()
    cur.execute(collist_sql, uid)
    coll_rows = cur.fetchall()
    if coll_rows:
        tmp_list_dict = {}
        for item in solts_dict.keys():
            tmp_list_dict[item] = []
        for item in coll_rows:
            cur.execute(file_sql, (item[0]))
            file_row = cur.fetchone()
            if file_row:
                tmp = {
                    'value': file_row[0],
                    'label': file_row[2],
                }
                tmp_list_dict[file_row[-1]].append(tmp)
        for item in tmp_list_dict.keys():
            if len(tmp_list_dict[item]) != 0:
                child_dict = {
                    'value': item,
                    'label': solts_dict[item],
                    'children': tmp_list_dict[item]
                }
                collfile_dict['children'].append(child_dict)
    fileoptions.append(collfile_dict)
    jsondata['fileoptions'] = fileoptions

    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getfilelist-end---------------------------'
    )
    return HttpResponse(s)
コード例 #17
0
def getlist(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-getfilelist-begin---------------------------'
    )
    jsondata = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
    }
    uid = request_body.get('userid', None)
    condition = request_body.get('condition', None)

    if uid and uid != 'share':
        sql = "select * from zbookapp_user where user_id=%s"
        cur = connection.cursor()
        cur.execute(sql, uid)
        row = cur.fetchone()
        cur.close()
        if not row:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    solts_dict = {}
    # 查询分类列表
    solts_sql = "select * from zbookapp_soltslist"
    cur = connection.cursor()
    cur.execute(solts_sql)
    rows = cur.fetchall()
    condition_id = None
    for item in rows:
        if condition == item[1]:
            condition_id = item[0]
        solts_dict[item[0]] = item[1]
    file_list = []

    # condition_id 不为空,为分类菜单列表
    print('condition=', condition, condition_id)
    if condition_id != None:
        file_list = conditionList(condition_id)
    else:
        if condition == '推荐':
            file_list = Tjlist(solts_dict)
        elif condition == '最新':
            file_list = Zxlist(solts_dict)
        elif condition == '我的上传':
            if uid:
                file_list = handlist(uid, solts_dict)
            else:
                s = public.setrespinfo({
                    "respcode": "300003",
                    "respmsg": "请登录!"
                })
                return s
        elif condition == '我的收藏':
            if uid:
                file_list = collist(uid, solts_dict)
            else:
                s = public.setrespinfo({
                    "respcode": "300003",
                    "respmsg": "请登录!"
                })
                return s
        elif condition == '书架':
            print('uid=', uid)
            if uid:
                file_list = shelfist(uid)
            else:
                s = public.setrespinfo({
                    "respcode": "300003",
                    "respmsg": "请登录!"
                })
                return s

    jsondata['list'] = file_list
    print('file_list=', file_list)
    s = json.dumps(jsondata, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-getfilelist-end---------------------------'
    )
    return HttpResponse(s)
コード例 #18
0
def admin(request):
    try:
        starttime = datetime.datetime.now()
        global log
        log, fh = public.loger_init('Admin')
        log.info(
            '----------------------Admin-begin---------------------------')
        log.info("请求:[%s]" % request)
        log.info("请求path:[%s]" % request.path)
        log.info("请求method:[%s]" % request.method)
        log.info("请求GET:[%s]" % request.GET)

        global location_href
        location_href = 'https://localhost:8000' + request.get_full_path()
        log.info("请求full_path:[%s]" % location_href)
        if request.path[-1] == '/':
            param1 = request.path.rsplit('/')[-2]
        else:
            param1 = request.path.rsplit('/')[-1]
        logmsg = 'param1=[' + param1 + ']'
        log.info(logmsg)

        global respinfo
        respinfo = None

        # 记录交易处理开始的时间点
        mysavepoint = transaction.savepoint()

        if param1 == 'useract':
            # 登录、注册接口
            respinfo = useract.admin(request)
            return respinfo
        elif param1 == 'filecfg':
            # 文件上传接口
            respinfo = filecfg.admin(request)
            return respinfo
        elif param1 == 'readact':
            # 阅读接口
            respinfo = readact.admin(request)
            return respinfo
        elif param1 == 'appview':
            # app信息展示
            respinfo = appview.admin(request)
            return respinfo
        elif param1 == 'appreadact':
            # app阅读接口
            respinfo = appreadact.admin(request)
            return respinfo
        elif param1 == 'appuseract':
            # app用户个人信息操作接口
            respinfo = appuseract.admin(request)
            return respinfo
        else:
            respinfo = render(request, 'index.html')
            return respinfo
    except Exception as e:
        log.error('程序运行错误', exc_info=True)
        try:
            transaction.savepoint_rollback(mysavepoint)
        except:
            pass

        s = public.setrespinfo({
            "respcode": "999999",
            "respmsg": "系统错误:" + str(e)
        })
        respinfo = HttpResponse(s)

    finally:
        try:
            transaction.savepoint_rollback(mysavepoint)
        except:
            pass
        if not respinfo:  # 如果返回信息为空
            s = public.setrespinfo({
                "respcode": "999999",
                "respmsg": "系统错误[返回数据异常]"
            })
            respinfo = HttpResponse(s)

        try:
            if len(str(respinfo)) < 1024:
                log.info(respinfo)
                log.info(respinfo.getvalue().decode(encoding='utf-8'))
        except:
            pass
        log.info('----------------------Admin-end---------------------------')
        log.info('交易处理时间: %s' % str(datetime.datetime.now() - starttime))
        if fh:
            fh.close()
            log.removeHandler(fh)
        return respinfo
コード例 #19
0
ファイル: filecfg.py プロジェクト: zhangji85/zbook-amin
def file_upload(request, request_body):
    log = public.logger
    log.info(
        '----------------------Admin-files_upload-begin---------------------------'
    )
    filename = request_body.get('filename', None)
    username = request_body.get('username', None)
    file = request_body.get('file', None)
    name_id = request_body.get('name_id', 0)
    uid = request_body.get('uid', None)

    if filename == None or len(filename) < 2:
        s = public.setrespinfo({"respcode": "300001", "respmsg": "上送文件名错误"})
        return s
    if file == None:
        s = public.setrespinfo({"respcode": "300002", "respmsg": "上送文件内容错误"})
        return s
    if not username and not uid:
        s = public.setrespinfo({"respcode": "300003", "respmsg": "请登录!"})
        return s
    elif not uid:
        sql = "select user_id from zbookapp_user where username=%s"
        cur = connection.cursor()
        cur.execute(sql, username)
        row = cur.fetchone()
        cur.close()
        if row:
            uid = row[0]
        else:
            s = public.setrespinfo({"respcode": "300004", "respmsg": "用户不存在!"})
            return s
    print('file=', file)
    filename_ext = filename.split('.')[1]
    #生成md5值的文件名
    m2 = hashlib.md5()
    m2.update(file.encode('raw_unicode_escape'))
    md5_filename = m2.hexdigest() + '.' + filename_ext

    # 保存文件到本地文件上传目录
    filepath = public.localhome + 'fileup/'
    file_name = open(filepath + md5_filename, 'wb')
    mylen = len(request_body['file'])
    log.info('mylen=' + str(mylen))
    file_name.write(
        file.encode('raw_unicode_escape'))  #前端在json报文中,把二进制当字符串上送了,可以这样转换
    file_name.close()

    #插入数据库
    cur = connection.cursor()
    sql = "insert into zbookapp_bookfile(file_id,user_id,file_name,md5_name,tran_date,status,name) value(%s,%s,%s,%s,%s,%s,%s)"
    res = cur.execute(sql, (None, uid, filename, md5_filename,
                            datetime.datetime.now(), 0, name_id))
    fileid = cur.lastrowid
    cur.close()
    data = {
        "respcode": "000000",
        "respmsg": "上传成功",
        "trantype": request_body.get('trantype', None),
        "fileid": str(fileid),
        'filename': filename
    }

    s = json.dumps(data, cls=models.JsonCustomEncoder, ensure_ascii=False)
    log.info(
        '----------------------Admin-files_upload-end---------------------------'
    )
    return HttpResponse(s)