def set_auth_qu_use(userids, qu_ids, is_add): userids = list(map(lambda x: ObjectId(x), userids)) qu_ids = list(map(lambda x: ObjectId(x), qu_ids)) if is_add: for userid in userids: for qu_id in qu_ids: has_qu = __get_qu(userid, qu_id) is not None if not has_qu: User.update_by_id_add(userid, { 'qus': { 'qu_id': ObjectId(qu_id), 'info': { 'auth': 1 } } }) else: User.update({'_id': { '$in': userids }}, {'$pull': { 'qus': { 'qu_id': { '$in': qu_ids } } }}) return True
def set_qu_data(userid, qu_id, qu_data): has_qu = __get_qu(userid, qu_id) is not None if not has_qu: User.update_by_id_add( userid, {'qus': { 'qu_id': ObjectId(qu_id), 'info': { 'auth': 1 } }}) qu_report = Report.generate_report(qu_id, qu_data) return User.update_one( { "_id": ObjectId(userid), "qus": { '$elemMatch': { "qu_id": ObjectId(qu_id) } } }, {'$set': { 'qus.$.qu_data': qu_data, 'qus.$.qu_report': qu_report }})
def set_user_qu_info(userid, qu_id, info): has_qu = __get_qu(userid, qu_id) is not None if not has_qu: return User.update_by_id_add( userid, {'qus': { 'qu_id': ObjectId(qu_id), 'info': info }}) else: return User.update_one( { "_id": ObjectId(userid), "qus": { '$elemMatch': { "qu_id": ObjectId(qu_id) } } }, {'$set': { 'qus.$.info': info }})
def add_qu(userid, qu_id): return User.update_by_id_add(userid, {'qus': {'qu_id': ObjectId(qu_id)}})