def wx_update_scan_status(request): """ 功能说明: 更新用户扫码状态 """ log_request(request) try: confirm_code = getp(request.GET.get('confirm_code'), nullable=False, para_intro='用户确认码') confirm_status = getp(request.GET.get('confirm_status'), nullable=False, para_intro='用户确认状态') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = agents.wx_update_scan_status(request, confirm_code, confirm_status) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_login(request): log_request(request) try: username = getp(request.POST.get("username"), u"用户名", nullable=True) password = getp(request.POST.get("password"), u"密码", nullable=True) confirm_code = getp(request.GET.get('confirm_code'), nullable=True, para_intro='用户确认码') except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: if confirm_code: # 如果传了confirm_code则直接用确认码进行登陆 if services.api_confirmcode_login(request, confirm_code): return response200({"c": SUCCESS[0], "m": SUCCESS[1]}) else: return response200({ "c": ERR_LOGIN_FAIL[0], "m": ERR_LOGIN_FAIL[1] }) if services.login(request, username=username, password=password): result = {"c": SUCCESS[0], "m": SUCCESS[1]} log_response(request, result) response = response200(result) return response else: result = {"c": ERR_LOGIN_FAIL[0], "m": ERR_LOGIN_FAIL[1]} except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_mod_account(request): log_request(request) try: name = getp(request.POST.get('name'), nullable=False, para_intro='姓名') sex = getp(request.POST.get('sex'), nullable=True, para_intro='性别') area_id = getp(request.POST.get('area_id'), nullable=True, para_intro='地区id') area_name = getp(request.POST.get("area_name"), u"地域名称", nullable=True) manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) institution = getp(request.POST.get('institution'), nullable=True, para_intro='机构') position = getp(request.POST.get('position'), nullable=True, para_intro='职务') region_id = getp(request.POST.get('region_id'), nullable=True, para_intro='区域id') email = getp(request.POST.get('email'), nullable=True, para_intro='区域id') is_self_reg = getp(request.POST.get('is_self_reg'), nullable=True, para_intro='是否自主注册') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_mod_account(request, name, sex, area_id, area_name, manage_direct, institution, position, region_id, email, is_self_reg) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def page_practice_list_answer_his(request): """ 功能说明: 查看历史答题记录页面 """ log_request(request) try: user_name = getp(request.GET.get('username'), nullable=True, para_intro='用户姓名', default='') days = getp(request.GET.get('days'), nullable=False, para_intro='最近天数', default='7') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: params = services.get_practice_list_answer_his(request, user_name, days) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, params) return render_to_response('html/practice/answer_his.html', params)
def api_practice_pinyin(request): """ 功能说明: 下载拼音练习EXCEL """ log_request(request) try: has_hanzi = getp(request.GET.get('has_hanzi'), nullable=True, para_intro='仅显示汉字拼音,不要格式') # 勾上为on,不勾不会传这个参数 words = getp(request.GET.get('words'), nullable=False, para_intro='中文单词列表') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: excel_filename = r'temp/%s.xls' % uuid.uuid1() result = get_pinyin_excel(words, excel_filename, has_hanzi) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) file = open(excel_filename, 'rb') response = HttpResponse(file) response['Content-Type'] = 'application/octet-stream' #设置头信息,告诉浏览器这是个文件 response['Content-Disposition'] = 'attachment;filename="quiz.xls"' return response
def api_list_expert_user(request): log_request(request) try: # cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id", nullable=False) name = getp(request.POST.get("name"), u"姓名", nullable=True) area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True) manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) is_show_store = getp(request.POST.get("is_show_store"), u"是否在专家库显示", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.list_expert_user(request.user, None, name, area_id, manage_direct, is_show_store) # result = paging_with_request(request, result) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) if result['c'] == SUCCESS[0]: result = paging_with_request(request, result) log_response(request, result) return response200(result)
def api_export_activity_user(request): try: cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id", nullable=True) activity_id = getp(request.POST.get("activity_id"), u"活动的id", nullable=False) user_id_list = getp(request.POST.get("user_id_list"), u"用户ID列表", nullable=True, default=[]) user_flag = getp(request.POST.get("user_flag"), u"被导入用户的标识(0:用户,1:专家)", nullable=True, default=0) name = getp(request.POST.get("name"), u"用户名", nullable=True) area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True) direct_level = getp(request.POST.get("direct_level"), u"直属等级(4:省直属,2市直属)", nullable=True) item_id_list = getp(request.POST.get("item_id_list"), u"查询的id列表,JSON", nullable=True) qry_all_user = getp(request.POST.get("qry_all_user"), u"是否查询全部用户", nullable=True) if user_id_list: account_id_list = json.loads(user_id_list) else: account_id_list = [] result = services.export_activity_user(user=request.user, activity_id=activity_id, account_id_list=account_id_list, name=name, user_flag=user_flag, area_id=area_id, cur_user_id=cur_user_id, direct_level=direct_level, item_id_list=item_id_list, qry_all_user=qry_all_user) if result["c"] != ERR_SUCCESS[0]: return response200(result) file_path = result["d"] response = gen_file_reponse(file_path) return response except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message)
def api_download_activity_user_template(request): try: activity_id = getp(request.POST.get("activity_id"), u"活动的id", nullable=True) user_flag = getp(request.POST.get("user_flag"), u"模板中用户的标识(0:普通用户或管理员,1:专家,默认为0)", nullable=True, default="0") result = services.download_activity_user_template() if result["c"] != ERR_SUCCESS[0]: return response200(result) file_path = result["d"][0] response = gen_file_reponse(file_path) return response except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message)
def api_reset_own_password(request): log_request(request) try: old_password = getp(request.POST.get('old_password'), u"原密码") new_password = getp(request.POST.get('new_password'), u"新密码") except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.reset_own_password(user=request.user, old_password=old_password, new_password=new_password) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_import_activity_user(request): try: file_obj = request.FILES['file'] activity_id = getp(request.POST.get("activity_id"), u"活动的id", nullable=False) cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id", nullable=False) user_flag = getp(request.POST.get("user_flag"), u"被导入用户的标识(0:普通用户,1:管理员,2:专家)", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: dictResp = services.import_activity_user(user=request.user, file_obj=file_obj, activity_id=activity_id, user_flag=user_flag, cur_user_id=cur_user_id) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) return response200(dictResp)
def api_config_user(request): log_request(request) try: account_id = getp(request.POST.get("account_id"), u"account_id", nullable=False) activity_mask = getp(request.POST.get("activity_mask"), u"可配置的活动掩码", nullable=False) area_id = getp(request.POST.get("area_id"), u"创建活动的区域id", nullable=False) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.config_user(request.user, account_id, activity_mask, area_id) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_check_smsverifycode(request): log_request(request) try: mobile = getp(request.POST.get('mobile'), nullable=False, para_intro='电话号码') smscode = getp(request.POST.get('smscode'), nullable=False, para_intro='短信验证码') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_check_smsverifycode(request.user, mobile, smscode) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_reset_others_password(request): log_request(request) try: account_id = getp(request.POST.get('account_id'), u"用户id", nullable=False) admin_password = getp(request.POST.get('admin_password'), u"管理员密码") new_password = getp(request.POST.get('new_password'), u"新密码") except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.reset_others_password(user=request.user, account_id=account_id, admin_password=admin_password, new_password=new_password) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_export_user(request): try: area_name = getp(request.POST.get("area_name"), u"区域名称", nullable=True) name = getp(request.POST.get("name"), u"名字", nullable=True) user_id = getp(request.POST.get("user_id"), u"用户id", nullable=False) item_id_list = getp(request.POST.get("item_id_list"), u"查询的id列表,JSON", nullable=True) result = services.api_export_user(user=request.user, user_id=user_id, area_name=area_name, name=name, item_id_list=item_id_list) if result["c"] != ERR_SUCCESS[0]: return response200(result) file_path = result["d"] response = gen_file_reponse(file_path) return response except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message)
def api_add_account_right(request): log_request(request) try: account_id = getp(request.POST.get('account_id'), nullable=False, para_intro='帐户ID') area_id = getp(request.POST.get('area_id'), nullable=False, para_intro='地区ID') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_add_account_right(request, account_id, area_id) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_mod_user(request): log_request(request) try: user_id = getp(request.POST.get("user_id"), u"用户ID", nullable=False) username = getp(request.POST.get("username"), u"用户名", nullable=True, default='') # 暂不允许修改用户名,修改用户视为删除旧用户,增加新用户,但你非要改我也能支持liukai name = getp(request.POST.get("name"), u"名称", nullable=False) sex = getp(request.POST.get("sex"), u"性别", nullable=False) # area_name = getp(request.POST.get("area_name"), u"地区", nullable=False) # current_user_id = getp(request.POST.get("current_user_id"), u'当前用户', nullable=False) # manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True) direct_area_id = getp(request.POST.get("direct_area_id"), u"哪一个区域直属", nullable=True) institution = getp(request.POST.get("institution"), u"组织名称", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.mod_user(request.user, user_id, username, name, sex, area_id, direct_area_id, institution) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_list_sub_area(request): log_request(request) try: cur_user_id = getp(request.POST.get('cur_user_id'), u"当前用户的id", nullable=True) area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True) manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) # 1只查直属,0只查非直属,不传或传空则不限制。 area_name = getp(request.POST.get("area_name"), u"区域名称", nullable=True) # 过滤条件,模糊匹配 is_school = getp(request.POST.get("is_school"), u"是否学校", nullable=True) # 1只查学校,0只查非学校,不传或传空则不限制。 except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.list_sub_area(request.user, cur_user_id, area_id, manage_direct, area_name, is_school) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_add_account(request): log_request(request) try: username = getp(request.POST.get("username"), u"用户名", nullable=False) name = getp(request.POST.get("name"), u"姓名", nullable=False) sex = getp(request.POST.get("sex"), u"性别", nullable=False) activity_mask = getp(request.POST.get("activity_mask"), u"创建活动的掩码", nullable=True) area_id = getp(request.POST.get("area_id"), u"区域的id", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.add_account(request.user, username, name, sex, activity_mask, area_id) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_delete_user(request): log_request(request) try: cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id", nullable=False) user_id_list = getp(request.POST.get("user_id_list"), u"删除的用户list", nullable=True) area_name = getp(request.POST.get("area_name"), u"区域名称", nullable=True) name = getp(request.POST.get("name"), u"名字", nullable=True) del_all_user = getp(request.POST.get("del_all_user"), u"是否删除所有用户", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.delete_user(request.user, cur_user_id, user_id_list, del_all_user, area_name, name) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_qry_institution_reg(request): log_request(request) try: cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id", nullable=False) rows = getp(request.GET.get('rows'), nullable=True, para_intro='一次返回最大行数') page = getp(request.GET.get('page'), nullable=True, para_intro='页码') last_id = getp(request.GET.get('last_id'), nullable=True, para_intro='最后id') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_qry_institution_reg(request.user, cur_user_id, rows, page, last_id) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_list_account(request): log_request(request) try: name_or_mobile = getp(request.GET.get('name_or_mobile'), nullable=False, para_intro='姓名或手机号') rows = getp(request.GET.get('rows'), nullable=True, para_intro='一次返回最大行数') page = getp(request.GET.get('page'), nullable=True, para_intro='页码') last_id = getp(request.GET.get('last_id'), nullable=True, para_intro='最后id') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_list_account(request, name_or_mobile, rows, page, last_id) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_export_expert(request): try: cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id", nullable=False) name = getp(request.POST.get("name"), u"姓名", nullable=True) area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True) manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) item_id_list = getp(request.POST.get("item_id_list"), u"查询的id列表,JSON", nullable=True) result = services.api_export_expert(user=request.user, cur_user_id=cur_user_id, name=name, area_id=area_id, manage_direct=manage_direct, item_id_list=item_id_list) if result["c"] != ERR_SUCCESS[0]: return response200(result) file_path = result["d"] response = gen_file_reponse(file_path) return response except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message)
def page_common_test(request): """ 功能说明: page页面 """ log_request(request) try: quest_type = getp(request.GET.get('quest_type'), nullable=True, para_intro='生成题目类型') num = getp(request.GET.get('num'), nullable=True, para_intro='题目数量') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: params = services.page_common_test(request, quest_type, num) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, params) return render_to_response('html/test.html', params)
def api_list_region(request): log_request(request) try: region_name = getp(request.POST.get('region_name'), nullable=False, para_intro='区域名称', default='') region_level = getp(request.POST.get('region_level'), nullable=False, para_intro='区域层级', default='') rows = getp(request.GET.get('rows'), nullable=True, para_intro='一次返回最大行数') page = getp(request.GET.get('page'), nullable=True, para_intro='页码') last_id = getp(request.GET.get('last_id'), nullable=True, para_intro='最后id') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_list_region(request, region_name, region_level, rows, page, last_id) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_add_expert_user(request): """ 添加专家用户。一般此接口只有其它接口调用,前端不会直接调用。 当前逻辑为任何用户可以随意添加专家,也可以添加任意地区的专家。 :param request: :return: """ log_request(request) try: # cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id") username = getp(request.POST.get("username"), u"用户名") name = getp(request.POST.get("name"), u"姓名") sex = getp(request.POST.get("sex"), u"性别") # area_name = getp(request.POST.get("area_name"), u"地域名称", nullable=True) institution = getp(request.POST.get("institution"), u"组织名称", nullable=True) # manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True) direct_area_id = getp(request.POST.get("direct_area_id"), u"哪一个区域直属", nullable=True) image_id = getp(request.POST.get("image_id", ""), u"头像图片", nullable=True) position = getp(request.POST.get("position", ""), u"职位信息", nullable=True) introduction = getp(request.POST.get("introduction", ""), u"个人介绍", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.add_expert_user(request.user, username, name, sex, institution, image_id, position, introduction, area_id, direct_area_id) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_delete_expert_user(request): log_request(request) try: cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户的id") expert_id_list = getp(request.POST.get("expert_id_list"), u"专家的id列表", nullable=True) name = getp(request.POST.get("name"), u"姓名", nullable=True) area_id = getp(request.POST.get("area_id"), u"地域id", nullable=True) manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) del_all_expert = getp(request.POST.get("del_all_expert"), u"是否删除所有专家", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.delete_expert_user(request.user, cur_user_id, expert_id_list, name, area_id, manage_direct, del_all_expert) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def api_mod_expert_user(request): log_request(request) try: expert_id = getp(request.POST.get("expert_id"), u"专家ID") # cur_user_id = getp(request.POST.get("cur_user_id"), u"当前用户id") username = getp(request.POST.get("username"), u"用户名") name = getp(request.POST.get("name"), u"姓名") sex = getp(request.POST.get("sex"), u"性别") # area_name = getp(request.POST.get("area_name"), u"地域名称", nullable=True) institution = getp(request.POST.get("institution"), u"组织名称", nullable=True) # manage_direct = getp(request.POST.get("manage_direct"), u"直属标志", nullable=True) image_id = getp(request.POST.get("image_id", ""), u"头像图片", nullable=True) position = getp(request.POST.get("position", ""), u"职位信息", nullable=True) introduction = getp(request.POST.get("introduction", ""), u"个人介绍", nullable=True) area_id = getp(request.POST.get("area_id"), u"区域ID", nullable=True) direct_area_id = getp(request.POST.get("direct_area_id"), u"哪一个区域直属", nullable=True) except InvalidHttpParaException as ex: logger.exception(ex) return response_parameter_error(ex) try: result = services.mod_expert_user(request.user, expert_id, username, name, sex, institution, image_id, position, introduction, area_id, direct_area_id) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)
def page_practice_list_quest(request): """ 功能说明: 题目列表页面 """ log_request(request) try: quest_type = getp(request.GET.get('quest_type'), nullable=False, para_intro='生成题目类型') # 多种类型以逗号隔开 num = getp(request.GET.get('num'), nullable=False, para_intro='题目数量') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: params = services.get_quest_list_page_param(request, quest_type, num) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, params) return render_to_response('html/practice/index.html', params)
def api_practice_list_quest(request): """ 功能说明: 题目列表 """ log_request(request) try: quest_type = getp(request.GET.get('quest_type'), nullable=False, para_intro='生成题目类型') num = getp(request.GET.get('num'), nullable=False, para_intro='题目数量') except InvalidHttpParaException as ihpe: logger.exception(ihpe) return response_parameter_error(ihpe) try: result = services.api_practice_list_quest(request, quest_type, num) except Exception as e: logger.exception(e) return response_exception(e) log_response(request, result) return response200({'c': SUCCESS[0], 'm': SUCCESS[1], 'd': result})
def api_check_username(request): log_request(request) try: username = getp(request.POST.get("username"), u"用户名", nullable=False) except InvalidHttpParaException as ex: return response_parameter_error(ex) try: result = services.check_username(request.user, username) except Exception as ex: logger.exception(ex) return response_exception(ex, ex.message) log_response(request, result) return response200(result)