def addActivityTracks(): """ 批量新增运动员活动记录信息 :return: {'add':r}, r为更新成功记录条数, -1表示失败 """ str = request.get_data() str = str.decode('utf8') str.replace('\\n', ' ') activityTracks = json.loads(str) if activityTracks and len(activityTracks) > 0: h = ActivityHandler() r = h.addActivityTracks(activityTracks) return packageResponse({'add': r}) return packageResponse({'add': 0})
def addPlayers(): """ 批量新增运动员信息 :return: json, {'add': r}, r表示新增成功记录数, 其他值表示新增失败(全体回滚) """ str = request.get_data() str = str.decode('utf8') str.replace('\\n',' ') playerList = json.loads(str) if playerList and len(playerList) > 0: h = PlayerHandler() r = h.addPlayers(playerList) return packageResponse({'add': r}) return packageResponse({'add': 0})
def addPlayer(): """ 新增运动员信息 :return: json, {'add': i}, i为0表示新增成功, 其他值表示新增失败 """ player_code = request.form.get("player_code") name = request.form.get("name") al_name = request.form.get("al_name") uniform_number = request.form.get("uniform_number") comment = request.form.get("comment") birthday = request.form.get("birthday") status = request.form.get("status") course_count = request.form.get("course_count") due_dt = request.form.get("due_dt") group = request.form.get("group") contact_phone = request.form.get("contact_phone") contact_name = request.form.get("contact_name") d1 = request.form.get("d1") d2 = request.form.get("d2") d3 = request.form.get("d3") d4 = request.form.get("d4") d5 = request.form.get("d5") d6 = request.form.get("d6") d7 = request.form.get("d7") batch_id = request.form.get("batch_id") h = PlayerHandler() i = h.addPlayer(player_code, name, al_name, uniform_number, comment, birthday, status, course_count, due_dt, group, contact_phone, contact_name, d1, d2, d3, d4, d5, d6, d7, batch_id) return packageResponse({'add': i})
def authSignInUser(code, pwd): """ 根据用户代码和密码校验用户 :param code: 用户代码 :param pwd: 用户密码 :return: {'authenticated': i}, i为1表示成功, 为0表示失败 """ h = UserHandler() l = h.authenticateUser(code, pwd, 'B') if(len(l)>0): return packageResponse({'authenticated':'1'}) else: l = h.authenticateUser(code, pwd, 'A') if(len(l)>0): return packageResponse({'authenticated':'1'}) return packageResponse({'authenticated':'0'})
def listCartoonPortraits(): """ 向客户端返回所有卡通头像的绝对路径 :return: json, {'data': []} """ l = img.loadCartoonPortraits() return packageResponse({'data': l})
def truncateActivityTrack(): """ 清空运动员活动记录表信息 :return: json, {'truncate': 1} """ h = ActivityHandler() h.truncateActivityTrack() return packageResponse({'truncate': 1})
def truncatePlayer(): """ 清空运动员表信息 :return: json, {'truncate': 1} """ h = PlayerHandler() h.truncatePlayer() return packageResponse({'truncate': 1})
def getRefTableData(): """ 向客户端返回数据库映射获得的数据库表列表 :return: {'data': []} """ h = TableHandler() l = h.reflectTables() return packageResponse({'data': l})
def getRoleTreeData(role_code): """ 向客户端返回查询角色的树数据 :param role_code: str, 角色代码 :return: json, 以角色为顶节点的树({'data':{'role_code': str, 'name': str, 'status': boolean, children:[]}}) """ h = RoleHandler() return packageResponse({'data': h.getRoleTreeData(role_code)})
def listPlanTimeLine(): """ 查询请假时间规则配置信息 :return: {"data":"[{'timegroup':'xxx','descr':'xxx','timeline':'00:00:00','before':3,'eff_status':'A'}]"} """ h = PlayerHandler() l = h.getPlanTimeLineData() return packageResponse({'data': l})
def createTable(): """ 在数据库中创建数据实体表 :return: json, {'data': r}, r为0表示创建成功, 否则为创建失败 """ data = request.get_json() h = TableHandler() r = h.createTable(data) return packageResponse({'data': r})
def dumpTable(): """ 将数据写入数据库实体表 :return: json, 返回插入结果和提示信息,({'data': {'code': str, 'text': str}) """ data = request.get_json() h = TableHandler() i, r = h.dumpTable(data) return packageResponse({'data': {'code': i, 'text': str(r)}})
def getOpenid(code): """ 根据获得用户的OpenId,Session_key和UnionId(open.weixin.qq.com中注册为开发者且认证才能获得UnionId) :param code: code :return: {"openid":"OPENID"} """ s = weixin.getOpenid(code) if s == '': abort(404) return packageResponse({'openid': s})
def updateTree(): """ 更新树数据 :return: json, 无意义 """ data = request.get_json() if data: h = TreeHandler() h.updateTreeData(data) return packageResponse({'data': {}})
def addPlanTimelineData(): """ 新增请假规则配置 :return: {'add':i}, i为0时表示新增成功, 其余值表示失败 """ json_str = request.form.get("planTimelineData") planTimelineData = json.loads(json_str) h = PlayerHandler() r = h.addPlanTimelineData(planTimelineData) return packageResponse({'add': r})
def updateTable(): """ 更新数据表信息 :return: json, {'data': r}, r为0表示更新成功, 否则为更新失败 """ data = request.get_json() if data: h = TableHandler() r = h.updateTableData(data) return packageResponse({'data': r})
def getPlayerCourseCountByContactPhone(phone): """ 根据联系人电话向客户端返回关联的运动员课时和训练计划信息 :param phone: str, 联系人电话 :return: json {'CourseCount':[{'player_code':str,'name':str,'RCC':int,'due_dt':str,'comment':str,'track':[],'plan':[]}]} """ h = PlayerHandler() l = h.getPlayerCourseCountOfContact(phone) if len(l) == 0: abort(404) return packageResponse({'CourseCount': l})
def userInfo(): """ 向客户端返回用户权限信息 :return: """ if 'current_user_proxy' in session: up = session['current_user_proxy'] if up: h = UserHandler() a = h.getUserAvatarByCode(up.user_code) return packageResponse({'data':{'roles':[e.role_code for e in up.roles], 'name':up.user_data.name, 'avatar': a.avatar if a else 'common/portrait.gif', 'introduction':up.user_data.name+'('+up.user_code+')'}}) return '登录超时,根据秘钥无法找到在线用户!', 401
def methods(endpoint): """ 向客户端返回该后台服务相关的http method :param endpoint:str, 后台服务代码 :return: json, {'data': []} """ r = {'data': []} for e in current_app.url_map.iter_rules(endpoint): r['data'] = [ ee for ee in e.methods if (ee != 'OPTIONS' and ee != 'HEAD') ] return packageResponse(r)
def listUsers(): """ 向客户端返回所有用户 :return: json, {'data': [{'user_code': str, 'name': str}]} """ h = UserHandler() u = h.listUsers(status='') return packageResponse( {'data': [{ 'user_code': e.user_code, 'name': e.name } for e in u]})
def pushUserAvatar(): """ 更新用户头像 :return: json, {'data':{'code': r}} r为0表示更新成功, 否则表示更新失败 """ data = request.get_json() if data: h = UserHandler() r = h.pushUserAvatar(data) return packageResponse({'data': { 'code': r }}) if r == 0 else ('头像信息更新失败!', 500)
def updateUser(): """ 更新用户数据 :return: json, {'data':{'code': r}} r为0表示更新成功, 否则表示更新失败 """ data = request.get_json() if data: h = UserHandler() r = h.updateUserData(data) return packageResponse({'data': { 'code': r }}) if r == 0 else ('用户信息更新失败!', 500)
def listRoles(): """ 向客户端返回所有角色的列表 :return: json, {'data': [{'role_code': str, 'name': str}]} """ h = RoleHandler() l = h.listRoles(status='') return packageResponse( {'data': [{ 'role_code': e.role_code, 'name': e.name } for e in l]})
def listTrees(): """ 向客户端返回所有树的列表 :return: json, {'data': [{'tree_code':str, 'name':str}]} """ h = TreeHandler() t = h.listTrees(status='') return packageResponse( {'data': [{ 'tree_code': e.tree_code, 'name': e.name } for e in t]})
def login(): """ 用户登录 :return: touple, 返回文本, 返回值 """ user_proxy = execLoginFunc(request) if user_proxy: # session.permanent = True #必须permanent = True, session才生效 session['current_user_proxy'] = user_proxy return packageResponse({'data': {'token': user_proxy.key}}) else: return '登录失败,用户或者密码错误!', 401
def getTree(): """ 向客户端返回根据代码和名称模糊查询获得的树列表 :return: json, {'data': []} """ args = request.args params = {'tree_code': '', 'name': ''} if 'tree_code' in args: params['tree_code'] = args['tree_code'] if 'name' in args: params['name'] = args['name'] h = TreeHandler() return packageResponse({'data': h.getTreeData(params)})
def getRoleData(): """ 向客户端返回角色数据(包括角色的后台服务和前台菜单) :return: json, [{'code': str, 'name': name, 'status': boolean, 'endpoint': [], 'viewroute': []}] """ args = request.args params = {'code': '', 'name': ''} if 'code' in args: params['code'] = args['code'] if 'name' in args: params['name'] = args['name'] h = RoleHandler() return packageResponse({'data': h.getRoleData(params)})
def getUserData(): """ 向客户端返回用户数据 :return: json, {'data':{'user_code':str, 'name':str, 'status':boolean, 'password':'', 'phone':str, 'email':str, 'avatar':str, 'role':[]}} """ args = request.args params = {'user_code': '', 'name': ''} if 'user_code' in args: params['user_code'] = args['user_code'] if 'name' in args: params['name'] = args['name'] h = UserHandler() return packageResponse({'data': h.getUserData(params)})
def getPlayerByName(name): """ 根据姓名向客户端返回运动员信息列表 :param name: 运动员姓名 :return: json, {'list':[]} """ l = [] h = PlayerHandler() ll = h.getPlayerByName(name) for e in ll: p = packagePlayer(e) l.append(p) return packageResponse({'list': l})
def getPlayerByNameOrUniformNumber(code): """ 根据联系人电话向客户端返回关联的运动员课时和训练计划信息 :param phone: str, 联系人电话 :return: json {'CourseCount':[{'player_code':str,'name':str,'RCC':int,'due_dt':str,'comment':str,'track':[],'plan':[]}]} """ l = [] h = PlayerHandler() ll = h.getPlayerByNameOrUniformNumber(code) for e in ll: p = packagePlayer(e) l.append(p) return packageResponse({'list': l})