def subscribe(user_id, topic_id): conn = db.connect_torndb_proxy() mongo = db.connect_mongo() ms = conn.query("select * from topic_message where topicId=%s and active='Y' order by publishTime desc limit 200", topic_id) for m in ms: process_util.insert_user_message(user_id, m["publishTime"]+datetime.timedelta(hours=-8), topic_message_id=m["id"], _mongo=mongo) mongo.close() conn.close()
def subscribe(user_id, company_id): conn = db.connect_torndb_proxy() mongo = db.connect_mongo() ms = conn.query( "select * from company_message where companyId=%s and active='Y' " "and publishTime>date_sub(now(),interval 30 day) " "order by publishTime desc ", company_id) for m in ms: process_util.insert_user_message(user_id, m["publishTime"] + datetime.timedelta(hours=-8), company_message_id=m["id"], _mongo=mongo) mongo.close() conn.close()
def process_one_message(topic_message_id): logger.info("process_message topic_message_id: %s", topic_message_id) conn = db.connect_torndb_proxy() mongo = db.connect_mongo() message = conn.get("select * from topic_message where id=%s", topic_message_id) flag = message_valid_check(message, mongo, conn) if flag is False: logger.info("delete message: %s, relateType: %s, relateId: %s", topic_message_id, message["relateType"], message["relateId"]) # 删除消息 delete_invalid(message, conn, mongo) elif flag == 'A': conn.update("update topic_message set active='P',modifyTime=now(), modifyUser=1078" " where id=%s", topic_message_id) mongo.message.user_message.delete_many({"topicMessageId": topic_message_id}) else: if message is not None and message["active"] == 'Y': # topic_message_sector_rel patch_sector(message) # 推送给用户 topic = conn.get("select * from topic where id=%s", message["topicId"]) subscriptions = conn.query("select * from user_topic_subscription where (active is null or active='Y') and " "topicId=%s", topic["id"]) # test_users = process_util.get_test_users() # for userId in test_users: # subscriptions.append({"userId": userId}) for subscription in subscriptions: user_id = int(subscription["userId"]) send = True if topic["sectorRelevant"] == "Y": send = has_sector(topic_message_id, user_id) if send is True: valid = True if topic["onlyForInvestor"] == "Y": user = conn.get("select * from user where id=%s", user_id) if user is None or user["verifiedInvestor"] != 'Y': valid = False if valid is True: flag = process_util.insert_user_message(user_id, message["publishTime"] + datetime.timedelta(hours=-8), topic_message_id=topic_message_id, _mongo=mongo) if flag: # 只推送10分钟之内的消息 n = datetime.datetime.now() + datetime.timedelta(minutes=-10) if n < message["publishTime"]: # process_util.send_iOS_message(user_id, message, "topic", _conn=conn) # process_message.send_message(user_id, "topic") process_util.send_iOS_content_available(user_id, "topic", _conn=conn) conn.update("update topic_message set pushStatus=1 where id=%s", topic_message_id) elif message is not None and message["active"] == 'P': delete_user_message(topic_message_id) mongo.close() conn.close()
def _process(investor_message_id, _mongo=None, _conn=None): if _conn is None: conn = db.connect_torndb_proxy() else: conn = _conn if _mongo is None: mongo = db.connect_mongo() else: mongo = _mongo logger.info("investor_message_id: %s", investor_message_id) message = conn.get("select * from investor_message where id=%s", investor_message_id) flag = message_valid_check(message, mongo, conn) if flag is False: logger.info("should delete message: %s, relateType: %s, relateId: %s", investor_message_id, message["relateType"], message["relateId"]) # 删除消息 # delete(company_message_id, _mongo=mongo) # conn.update("update company_message set active='N', pushStatus=1 where id=%s", company_message_id) else: if message["active"] == 'P': flag = publish_check(message, mongo, conn) if flag: message["active"] = 'Y' conn.update( "update investor_message set active='Y',modifyTime=now() where id=%s", investor_message_id) if message["active"] == 'Y': logger.info("publish investor_message_id: %s", investor_message_id) # 推送给用户 subscriptions = conn.query( "select * from user_investor_subscription where (active is null or active='Y') and " "investorId=%s", message["investorId"]) test_users = process_util.get_test_users() for userId in test_users: subscriptions.append({"userId": userId}) for subscription in subscriptions: user_id = int(subscription["userId"]) flag = process_util.insert_user_message( user_id, message["publishTime"] + datetime.timedelta(hours=-8), investor_message_id=investor_message_id, _mongo=mongo) if flag: n = datetime.datetime.now() + datetime.timedelta( minutes=-10) if n < message["publishTime"]: process_util.send_iOS_content_available(user_id, "investor", _conn=conn) # 推送给user_message2 track_investor_message.process(conn, mongo, investor_message_id) conn.update("update investor_message set pushStatus=1 where id=%s", investor_message_id) else: # logger.info("delete company_message_id: %s", company_message_id) # TODO 重复删除 # delete(company_message_id, _mongo=mongo) pass if _mongo is None: mongo.close() if _conn is None: conn.close()
def _process(company_message_id, _mongo=None, _conn=None): if _conn is None: conn = db.connect_torndb_proxy() else: conn = _conn message = conn.get("select * from company_message where id=%s", company_message_id) if message is None or message["relateType"] == 60: if _conn is None: conn.close() return if _mongo is None: mongo = db.connect_mongo() else: mongo = _mongo flag = message_valid_check(message, mongo, conn) if flag is False: logger.info("should delete message: %s, relateType: %s, relateId: %s", company_message_id, message["relateType"], message["relateId"]) # 删除消息 # delete(company_message_id, _mongo=mongo) # conn.update("update company_message set active='N', pushStatus=1 where id=%s", company_message_id) else: process_util.audit_company_from_company_message( message["companyId"], message["trackDimension"], message["id"], message["relateType"], message["createTime"], _mongo=mongo, _conn=conn) # if message["relateType"] == 60: # process_util.audit_companies(message["relateId"], message["trackDimension"], message["id"], # message["relateType"], message["createTime"], _mongo=mongo, _conn=conn) if message["active"] == 'P': flag = publish_check(message, mongo, conn) if flag: message["active"] = 'Y' publish_time = message["publishTime"] #7天内publishTime更新为现在,7天外的不变 # if publish_time + datetime.timedelta(days=7) > datetime.datetime.now(): # publish_time = datetime.datetime.now() # message["publishTime"] = publish_time conn.update( "update company_message set active='Y',modifyTime=now(), publishTime=%s where id=%s", publish_time, company_message_id) if message["active"] == 'Y': logger.info("publish company_message_id: %s", company_message_id) # 推送给用户 if message["relateType"] == 80: subscriptions = [] test_users = process_util.get_test_users() for userId in test_users: subscriptions.append({"userId": userId}) else: subscriptions = conn.query( "select * from user_company_subscription where (active is null or active='Y') and " "companyId=%s", message["companyId"]) for subscription in subscriptions: user_id = int(subscription["userId"]) flag = process_util.insert_user_message( user_id, message["publishTime"] + datetime.timedelta(hours=-8), company_message_id=company_message_id, _mongo=mongo) if flag: n = datetime.datetime.now() + datetime.timedelta( minutes=-10) if n < message["publishTime"]: # process_util.send_iOS_message(user_id, message, "company", _conn=conn) # process_message.send_message(user_id, "company") process_util.send_iOS_content_available(user_id, "company", _conn=conn) # 推送给user_message2 track_company_message.process(conn, mongo, company_message_id) conn.update("update company_message set pushStatus=1 where id=%s", company_message_id) # if message["relateType"] == 80: # exit(0) # Test else: # logger.info("delete company_message_id: %s", company_message_id) # TODO 重复删除 # delete(company_message_id, _mongo=mongo) pass if _mongo is None: mongo.close() if _conn is None: conn.close()