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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)