def orderCallback(oId, userId, status, order): logger.debug('oId:%s, userId:%s, status:%d, order:%s', oId, userId, status, order) ''' 根据支付结果更新订单的状态 :param oId:RechargeFlow Id :param userId:用户Id :param status: 支付是否成功,1为成功,0为失败 :param order:第三方平台返回订单信息,包括错误码 :return: ''' item = {"$set": {"status": status, "order": order}} ###更新充值流水记录 orderHelper = ClassHelper("RechargeFlow") rechargeFlow = orderHelper.update(oId, item) if rechargeFlow and status == 1: ###更新钱包 walletHelper = ClassHelper("Wallet") walletInfo = walletHelper.find_one({"user": userId}) if walletInfo: wallet = {"$inc": {'balance': rechargeFlow['amount']}} wallet = walletHelper.update(walletInfo['_id'], wallet) else: wallet = {"user": userId, 'balance': rechargeFlow['amount']} walletHelper.create(wallet) if wallet: return wallet.update(rechargeFlow) else: return None else: return None
def addFeedRecord(userId, feedType, actionId, extraInfo=None): """ 给用户添加feed记录 :param userId: 发出动作的用户 :param feedType: 行为,包括认领,关注.分享,购买 :param actionId: 关联的事件id,目前只有认领,actionId为faceid :param extraInfo: :return: """ faceHelper = ClassHelper('Face') face = faceHelper.get(actionId) if not face: return assign = face.get('assign') if assign and assign.get('status') == 1: assigner = assign.get('assigner') else: assigner = None fansHelper = ClassHelper('Followee') feedHelper = ClassHelper('InBox') fans = fansHelper.find({'followee': userId, 'effect': {'$gt': 0}}) feedUserIds = [] for fan in fans: feedInfo = { 'user': fan['user'], 'type': feedType, 'actionId': actionId, 'read': False } if extraInfo: feedInfo['extraInfo'] = extraInfo feedHelper.create(feedInfo) feedUserIds.append(fan['user']) rc = Redis.get_connection() for user in feedUserIds: count = Redis.incrby('user_unread_feed_count_%s' % user, 1) message_json = { 'to_id': user, 'count': count, 't': 'feed', 'uri': 'honey://newFeed/$' + userId } publish_result = rc.publish( 'push_channel', json.dumps(message_json, ensure_ascii=False)) log.debug('public_result: %s', publish_result) # 发推送 if not assigner == user: message = {'userid': user, 'action': 'newFeed', 'otherid': userId} requests.post(BaseConfig.pushUrl, data=json.dumps(message), headers={'X-MeCloud-Debug': '1'})
def create_face_db(face_info): """ 创建数据库face记录 :param face_info: :return: """ face_helper = ClassHelper('Face') now = datetime.datetime.now() face_info['createAt'] = face_info['updateAt'] = now face_info['acl'] = {'*': {"read": True, "write": True}} return face_helper.create(face_info)
def orderCallback(self, oId, userId, status, order): ''' 根据支付结果更新订单的状态 :param oId:RechargeFlow Id :param userId:用户Id :param status: 支付是否成功,1为成功,3为等待验证 :param order:第三方平台返回订单信息,包括错误码 :return: ''' ###更新充值流水记录 orderHelper = ClassHelper("RechargeFlow") rechargeFlow = orderHelper.get(oId) walletHelper = ClassHelper("Wallet") walletInfo = walletHelper.find_one({"user": userId}) if status == 1: # 充值成功,更新钱包 rechargeFlow_action = { 'destClass': 'RechargeFlow', 'query': { "_id": oId }, 'action': { "@set": { "status": status, "order": order } } } if not walletInfo: # 未找到钱包直接创建 wallet = {"user": userId, 'balance': rechargeFlow['amount']} walletInfo = walletHelper.create( wallet, transaction=[rechargeFlow_action]) else: wallet = {"$inc": {'balance': rechargeFlow['amount']}} walletInfo = walletHelper.update( walletInfo['_id'], wallet, transaction=[rechargeFlow_action]) return walletInfo else: rechargeFlow = orderHelper.update( oId, {"$set": { "status": status, "order": order }}) return rechargeFlow
def save(self): from mecloud.helper.ClassHelper import ClassHelper classHelper = ClassHelper(self.className) if self.objectId == None: if self.dirty.has_key('_sid'): self.dirty['_id'] = ObjectId(self.dirty['_sid']) del (self.dirty['_sid']) obj = classHelper.create(self.dirty) if obj == None: return False self.objectId = obj['_id'] else: obj = classHelper.updateWithId(self.objectId, self.dirty) if obj == None: return False for k in obj: dict.__setitem__(self, k, obj[k]) self.dirty.clear() return True
def post(self, action=None, blackee=None, isuser=1): userId = self.get_current_user() if not userId: log.err("black error,user not exist!") self.write(ERR_USER_NOTFOUND.message) return if not blackee: log.err("request param error") self.write(ERR_NOPARA.message) return is_user = True if int(isuser) == 0: is_user = False # 查找用户是否存在 if is_user == True: userHelper = ClassHelper("User") else: userHelper = ClassHelper("BackupUser") findUser = userHelper.find_one({'_sid': blackee}) if not findUser: log.err("%s error,blackee not exist!", action) self.write(ERR_USER_NOTFOUND.message) return blackHelper = ClassHelper("Blacklist") followHelper = ClassHelper("Followee") try: if action == 'block': # 拉黑 # 判断是否已经拉黑过 blacked = blackHelper.find_one({ 'user': userId, 'blacker': blackee }) if blacked: self.write(ERR_SUCCESS.message) return blackHelper.create({'user': userId, 'blacker': blackee}) if is_user: fieldname = "followee" else: fieldname = "backupFollowee" unfollowed = followHelper.find_one({ 'user': userId, fieldname: blackee, 'effect': { '$gte': 1 } }) if unfollowed: FollowHelper.unfollow(userId, blackee, is_user) br = blackHelper.find_one({'user': userId, 'blacker': blackee}) successInfo = deepcopy(ERR_SUCCESS) successInfo.message["data"] = br self.write(json.dumps(successInfo.message, cls=MeEncoder)) elif action == 'unblock': # 取消拉黑 unblacked = blackHelper.find_one({ 'user': userId, 'blacker': blackee }) if not unblacked: self.write(ERR_SUCCESS.message) return blackHelper.delete(unblacked['_id']) self.write(ERR_SUCCESS.message) else: print "action error: " + action self.write(ERR_PATH_PERMISSION.message) return except Exception, e: log.err("BlacklistHandler-->action:%s in post() error, %s", action, e) self.write(ERR_DB_OPERATION.message)
elif action == "qrcode": #返回二维码需要的url if not self.request.arguments.has_key( 'shareTargetId') or not self.request.arguments.has_key( 'shareType'): self.write(ERR_PATH_PERMISSION.message) return shareType = int(self.get_argument("shareType")) shareTargetId = self.get_argument("shareTargetId") # 记录图片分享 try: shareRecordHelper = ClassHelper("ShareRecords") shareInfo = shareRecordHelper.create({ "from": self.user['_id'], "shareTargetId": shareTargetId, "shareType": shareType, "compareFaceId": self.get_argument("compareFaceId") }) shareInfo[ 'url'] = "http://heyhoney.blinnnk.com/" + "?compareId=" + shareInfo[ '_id'] self.write(json.dumps(shareInfo, cls=MeEncoder)) except Exception, ex: # print ex self.write(ERR_PATH_PERMISSION.message) else: self.write(ERR_PATH_PERMISSION.message) def getFile(self, fileId):
return classHelper = ClassHelper("CoinSetting") coinSetting = classHelper.get(obj['id']) try: if coinSetting and coinSetting['status'] == 1: item = {} item['user'] = self.user['_id'] item['recharge'] = coinSetting['amount'] * coinSetting['price'] item['amount'] = coinSetting['amount'] item['os'] = coinSetting['os'] item['platform'] = coinSetting['platform'] item['channel'] = obj['channel'] item['version'] = obj['version'] item['orderId'] = createOrderNo() classHelper = ClassHelper("RechargeFlow") reObj = classHelper.create(item) reObj['appleId'] = coinSetting['appleId'] self.write(json.dumps(reObj, cls=MeEncoder)) else: log.err("user %s appleRecharge error", self.user['_id']) self.write(ERR_PARA.message) except Exception, ex: log.err("user %s appleRecharge error", self.user['_id']) self.write(ERR_PARA.message) def payComplete(self): try: obj = json.loads(self.request.body) except Exception, e: log.err("JSON Error:[%d/%s] , error:%s", len(self.request.body), self.request.body, str(e))
classHelper = ClassHelper("CoinSetting") coinSetting = classHelper.get(obj['id']) try: if coinSetting and coinSetting['status'] == 1: item = {} item['user'] = self.user['_id'] item['recharge'] = coinSetting['price'] item['amount'] = coinSetting['amount'] + coinSetting['free'] item['os'] = coinSetting['os'] item['platform'] = coinSetting['platform'] item['channel'] = obj.get('channel', "APPLE") item['version'] = obj.get('version', "") item['orderNo'] = self.createOrderNo() item['status'] = 0 classHelper = ClassHelper("RechargeFlow") reObj = classHelper.create(item) self.write( json.dumps( { '_id': reObj['_id'], 'appleId': coinSetting['appleId'] }, cls=MeEncoder)) else: log.err("user %s appleRecharge error", self.user['_id']) self.write(ERR_PARA.message) except Exception, ex: log.err("user %s appleRecharge error:%s", self.user['_id'], ex) self.write(ERR_PARA.message) # 苹果支付状态上传服务器