Ejemplo n.º 1
0
 def deleteMediaFace(self, mediaId):
     mediaHelper = ClassHelper("Media")
     media = mediaHelper.find_one(query={"_id": mediaId}, keys={"faces": 1})
     tran = []
     if media:
         for face in media['faces']:
             tran.append({
                 'destClass': 'Face',
                 'query': {
                     '_id': face
                 },
                 'action': {
                     '@set': {
                         'status': 0
                     }
                 }
             })
         result = mediaHelper.update(mediaId, {"$set": {
             'status': 0
         }},
                                     transaction=tran)
         if result:
             self.write(ERR_SUCCESS.message)
         else:
             self.write(ERR_INVALID.message)
     else:
         self.write(ERR_PATH_PERMISSION.message)
Ejemplo n.º 2
0
def orderCallback(oId, userId, status, order):
    '''
    根据支付结果更新订单的状态
    :param oId:RechargeFlow Id
    :param userId:用户Id
    :param status: 支付是否成功,1为成功,3为等待验证
    :param order:第三方平台返回订单信息,包括错误码
    :return:
    '''
    log.debug('oId:%s, userId:%s, status:%d, order:%s', oId, userId, status,
              order)
    ###更新充值流水记录
    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
Ejemplo n.º 3
0
 def put(self,action=None):
     if action == "update":
         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))
             self.write(ERR_INVALID.message)
             return
         classHelper = ClassHelper("User")
         # 只返回了更新时间
         data = classHelper.update(self.user['_id'], obj)
         # 默认返回整个对象
         self.write(json.dumps(data, cls=MeEncoder))
Ejemplo n.º 4
0
    def save(self):
        from 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.update(self.objectId, self.dirty)
            if obj == None:
                return False

        for k in obj:
            dict.__setitem__(self, k, obj[k])

        self.dirty.clear()
        return True
Ejemplo n.º 5
0
                    uploader_income_flow = {}
                    uploader_income_flow['consumer_id'] = self.user['_id']
                    uploader_income_flow['consumer_nickname'] = user_info['nickName']
                    uploader_income_flow['consumer_avatar'] = user_info.get('avatar', None)
                    uploader_income_flow['coin'] = good['price']
                    uploader_income_flow['income'] = int(float(uploader_income_show) * 100)
                    uploader_income_flow['reason'] = 'uploader'
                    uploader_income_flow['user'] = face['uploader']
                    uploader_income_flow['charge_flow'] = chargeFlow['_id']
                    uploader_income_flow_action = {'destClass': 'StatCount',
                                                   'query': {'name': 'newIncome_' + face['uploader']},
                                                   'action': {'@inc': {'count': 1}}}
                    ClassHelper('IncomeFlow').create(obj=uploader_income_flow,
                                                     transaction=[uploader_income_flow_action])

                wallet = walletHelper.update(wallet['_id'], item,
                                             transaction=actions)
                if wallet:
                    # result = chargeFlowHelper.update(chargeFlow['_id'], {'$set': {'status': 1}})
                    # self.filter_field(result)
                    data = copy.deepcopy(ERR_SUCCESS)
                    data.message['mosaic'] = 1
                    self.write(json.dumps(data.message, cls=MeEncoder))
                    #
                    self.pushMessage(good, owner_income_show, uploader_income_show)
                    # 添加feed记录
                    # addFeedRecord(self.user['_id'], 'charge', face['_id'])
                    # print 'send pay push'
                    # t = threading.Thread(target=self.pushMessage,
                    #                      args=(good,))
                    # t.setDaemon(True)
                    # t.start()
                 value = self.sentiveCheck(key, value)
                 meobj = MeObject(key, value)
                 meobj.save()
         except bson.errors.InvalidId:
             objectIdError = True
             break
         except Exception, e:
             log.err("Error:%s , error:%s", self.request.body, str(e))
     if objectIdError:
         self.write(ERR_OBJECTID_MIS.message)
         return
     mainObj = obj[len(obj) - 1]
     mainObj = self.sentiveCheck(className, mainObj)
     classHelper = ClassHelper(className)
     # 只返回了更新时间
     data = classHelper.update(objectId, mainObj)
     # 默认返回整个对象
     self.write(json.dumps(data, cls=MeEncoder))
 else:
     classHelper = ClassHelper(className)
     # item = classHelper.get(objectId)#权限判断
     # if not item:
     #     log.err("%s not exists",objectId)
     #     self.write(ERR_NOTFOUND.message)
     #     return
     # if "acl" in item:
     #     acl = MeACL(item['acl'])
     #     if not acl.writeAccess(self.user):
     #         self.write(ERR_CLASS_PERMISSION.message)
     #         return
     # else: