def addMachines(args): userId = args.get("UserId", '') phone = args.get('Phone', '') user = User.getUserByIdOrPhoneOrMail(id=userId, phone=phone) if not user: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "UserId {} does't exist".format(userId) }), 400 machine = request.get_json().get("Machines") result = Machine.getMachineByMac(machine.get('Mac', '')) if not result: machine = Machine(**machine) db.session.add(machine) db.session.flush() db.session.add(QuanXian(user.id, machine.id, permission=QuanXian.Admin)) db.session.commit() return jsonify({ 'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!', 'Machine': machine.toJson() }), 200 else: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': '操作失败,改机器已被添加!' }), 400
def addUserPermission(args): userList = request.get_json().get("UserList") userId = userList.get('UserId', None) phone = userList.get('Phone', None) user = User.getUserByIdOrPhoneOrMail(userId, phone) if not user: if phone: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "User phone={} does't exist".format(phone)}), 400 if userId: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "User id={} does't exist".format(userId)}), 400 macAddress = userList.get('Mac', '') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "MacAddress {} does't exist".format(macAddress)}), 400 permisson = userList.get('Permission') startTime = userList.get('StartTime', None) endTime = userList.get('EndTime', None) money = userList.get('Money', 0.0) quanXian = QuanXian(user.id, machine.id, permission=permisson, startTime=startTime, endTime=endTime, money=money) db.session.merge(quanXian) db.session.commit() pushContent = {'Action': 'addUserPermission', 'Permission': permisson, 'Mac': macAddress, 'StartTime': startTime, 'EndTime': endTime, 'Money': money} pushMessageToSingle([user.pushToken], TransmissionTemplateDemo( json.dumps(pushContent) )) return jsonify({'Status' : 'Success', 'StatusCode':0, 'Msg' : '操作成功!'}), 200
def updateMachineInfo(args): userId = args.get("UserId", '') user = User.getUserByIdOrPhoneOrMail(id=userId) if not user: return jsonify({'Status': 'Failed', 'StatusCode': -1, 'Msg': "UserId {} does't exist".format(userId)}), 400 macAddress = args.get('MachineInfo').get('Mac') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress)}), 400 res = [] for element in QuanXian.query.filter_by(userId=userId, machineId=machine.id): if element.permission in [QuanXian.Producer, QuanXian.SuperAdmin, QuanXian.Admin]: res.append(element) if res == []: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': u"无权更新该机器的信息"}), 400 for fieldName in ['MachineName', 'MachineMoney', 'AdminPass', 'UserPass', 'MachineType']: if args.get('MachineInfo').has_key(fieldName): setattr(machine, fieldName[0].lower() + fieldName[1:], args.get('MachineInfo').get(fieldName)) db.session.merge(machine) db.session.commit() return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!', 'Machine': machine.toJson()}), 200
def infoUseMachine(args): macAddress = args.get('Mac', '') userId = args.get('UserId') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "MacAddress {} does't exist".format(macAddress)}), 400 machineUsage = MachineUsage(userId=userId, machineId=machine.id, action=MachineUsage.InfoUse) db.session.add(machineUsage) db.session.commit() return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200
def addUserPermission(args): userList = request.get_json().get("UserList") userId = userList.get('UserId', None) phone = userList.get('Phone', None) user = User.getUserByIdOrPhoneOrMail(userId, phone) if not user: if phone: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "User phone={} does't exist".format(phone) }), 400 if userId: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "User id={} does't exist".format(userId) }), 400 macAddress = userList.get('Mac', '') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress) }), 400 permisson = userList.get('Permission') startTime = userList.get('StartTime', None) endTime = userList.get('EndTime', None) money = userList.get('Money', 0.0) quanXian = QuanXian(user.id, machine.id, permission=permisson, startTime=startTime, endTime=endTime, money=money) db.session.merge(quanXian) db.session.commit() pushContent = { 'Action': 'addUserPermission', 'Permission': permisson, 'Mac': macAddress, 'StartTime': startTime, 'EndTime': endTime, 'Money': money } pushMessageToSingle([user.pushToken], TransmissionTemplateDemo(json.dumps(pushContent))) return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200
def infoOperateMachine(args): macAddress = args.get('Mac', '') userId = args.get('UserId') action = args.get('Action') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "MacAddress {} does't exist".format(macAddress)}), 400 if action not in ['Use', 'Stop']: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "无效的action \"{}\"".format(action)}), 400 machineUsage = MachineUsage(userId=userId, machineId=machine.id, action=action) db.session.add(machineUsage) db.session.commit() return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200
def updateMachineInfo(args): userId = args.get("UserId", '') user = User.getUserByIdOrPhoneOrMail(id=userId) if not user: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "UserId {} does't exist".format(userId) }), 400 macAddress = args.get('MachineInfo').get('Mac') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress) }), 400 res = [] for element in QuanXian.query.filter_by(userId=userId, machineId=machine.id): if element.permission in [ QuanXian.Producer, QuanXian.SuperAdmin, QuanXian.Admin ]: res.append(element) if res == []: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': u"无权更新该机器的信息" }), 400 for fieldName in [ 'MachineName', 'MachineMoney', 'AdminPass', 'UserPass', 'MachineType' ]: if args.get('MachineInfo').has_key(fieldName): setattr(machine, fieldName[0].lower() + fieldName[1:], args.get('MachineInfo').get(fieldName)) db.session.merge(machine) db.session.commit() return jsonify({ 'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!', 'Machine': machine.toJson() }), 200
def infoUseMachine(args): macAddress = args.get('Mac', '') userId = args.get('UserId') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress) }), 400 machineUsage = MachineUsage(userId=userId, machineId=machine.id, action=MachineUsage.InfoUse) db.session.add(machineUsage) db.session.commit() return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200
def addMachines(args): userId = args.get("UserId", '') phone = args.get('Phone', '') user = User.getUserByIdOrPhoneOrMail(id=userId, phone=phone) if not user: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "UserId {} does't exist".format(userId)}), 400 machine = request.get_json().get("Machines") result = Machine.getMachineByMac(machine.get('Mac', '')) if not result: machine = Machine(**machine) db.session.add(machine) db.session.flush() db.session.add(QuanXian(user.id, machine.id, permission=QuanXian.Admin)) db.session.commit() return jsonify({'Status' : 'Success', 'StatusCode':0, 'Msg' : '操作成功!', 'Machine': machine.toJson()}), 200 else: return jsonify({'Status' : 'Failed', 'StatusCode':-1, 'Msg' : '操作失败,改机器已被添加!'}), 400
def updateUserPermission(args): userPermissonList = request.get_json().get("UserPermissionList") userId = userPermissonList.get('UserId', None) phone = userPermissonList.get('Phone', None) user = User.getUserByIdOrPhoneOrMail(userId, phone) if not user: if phone: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "User phone={} does't exist".format(phone)}), 400 if userId: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "User id={} does't exist".format(userId)}), 400 macAddress = userPermissonList.get('Mac', '') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "MacAddress {} does't exist".format(macAddress)}), 400 permission = userPermissonList.get('Permission') startTime = userPermissonList.get('StartTime', None) endTime = userPermissonList.get('EndTime', None) money = userPermissonList.get('Money', -1) quanXian = QuanXian.query.filter_by(userId=user.id, machineId=machine.id).order_by('id desc').first() quanXian.permission = permission if not quanXian: return jsonify({'Status': 'Failed', 'StatusCode':-1, 'Msg': "User {} don't use machine {}".format(user.id, macAddress)}), 400 if money != -1: quanXian.money = money if startTime != None: quanXian.startTime = startTime if endTime != None: quanXian.endTime = endTime db.session.merge(quanXian) db.session.commit() pushContent = {'Action': 'updateUserPermission', 'Permission': permission, 'Mac': macAddress, 'Money':money, 'StartTime':startTime, 'EndTime':endTime} pushMessageToSingle([user.pushToken], TransmissionTemplateDemo( json.dumps(pushContent) )) return jsonify({'Status' : 'Success', 'StatusCode':0, 'Msg' : '操作成功!'}), 200
def infoOperateMachine(args): macAddress = args.get('Mac', '') userId = args.get('UserId') action = args.get('Action') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress) }), 400 if action not in ['Use', 'Stop']: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "无效的action \"{}\"".format(action) }), 400 machineUsage = MachineUsage(userId=userId, machineId=machine.id, action=action) db.session.add(machineUsage) db.session.commit() return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200
def updateUserPermission(args): userPermissonList = request.get_json().get("UserPermissionList") userId = userPermissonList.get('UserId', None) phone = userPermissonList.get('Phone', None) user = User.getUserByIdOrPhoneOrMail(userId, phone) if not user: if phone: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "User phone={} does't exist".format(phone) }), 400 if userId: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "User id={} does't exist".format(userId) }), 400 macAddress = userPermissonList.get('Mac', '') machine = Machine.getMachineByMac(macAddress) if not machine: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "MacAddress {} does't exist".format(macAddress) }), 400 permission = userPermissonList.get('Permission') startTime = userPermissonList.get('StartTime', None) endTime = userPermissonList.get('EndTime', None) money = userPermissonList.get('Money', -1) quanXian = QuanXian.query.filter_by( userId=user.id, machineId=machine.id).order_by('id desc').first() quanXian.permission = permission if not quanXian: return jsonify({ 'Status': 'Failed', 'StatusCode': -1, 'Msg': "User {} don't use machine {}".format(user.id, macAddress) }), 400 if money != -1: quanXian.money = money if startTime != None: quanXian.startTime = startTime if endTime != None: quanXian.endTime = endTime db.session.merge(quanXian) db.session.commit() pushContent = { 'Action': 'updateUserPermission', 'Permission': permission, 'Mac': macAddress, 'Money': money, 'StartTime': startTime, 'EndTime': endTime } pushMessageToSingle([user.pushToken], TransmissionTemplateDemo(json.dumps(pushContent))) return jsonify({'Status': 'Success', 'StatusCode': 0, 'Msg': '操作成功!'}), 200