Ejemplo n.º 1
0
 def create(cls, values):
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')
     values.update({'ctime': now_str, 'utime': now_str})
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.insert(table=RateInfo.TABLE, values=values)
         return ret
Ejemplo n.º 2
0
 def load_by_openid(cls, openid):
     where = {'openid': openid}
     keep_fields = [
         'syssn',
         'consumer_name',
         'consumer_mobile',
         'order_name',
         'order_desc',
         'openid',
         'txamt',
         'retcd',
         'status',
         'cancel',
         'origssn',
         'sysdtm',
     ]
     other = ' order by ctime desc '
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         records = conn.select(table=cls.TABLE,
                               fields=keep_fields,
                               where=where,
                               other=other)
         log.info('openid=%s|records=%s', openid, records)
         if records:
             for record in records:
                 # cls.to_string(record)
                 if record['retcd'] == '':
                     record['retcd'] = define.XC_ERR_ORDER_WAIT_PAY
                 tools.trans_time(record, cls.DATETIME_KEY)
                 tools.trans_amt(record)
         return records
Ejemplo n.º 3
0
 def load_recent(cls):
     where = {'status': define.BANNER_ENABLE}
     other = ' order by ctime desc '
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         record = conn.select_one(table=cls.TABLE, where=where, other=other)
         cls.to_string(record)
         return record
Ejemplo n.º 4
0
def create_syssn(record_date=None):
    """
    生成交易记录流水号,规则为: 年月日+2位保留+8位自增ID。 共计18位
    """

    if record_date is None:
        record_date = datetime.date.today()

    with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
        ret = conn.get("select uuid_short()", isdict=False)
        uuid = ret[0]
        seq = uuid % 100000000
        log.debug('uuid: %d, seq: %d', uuid, seq)

    fmt = "{year:0>4}{month:0>2}{day:0>2}{reserved:0>2}{seq:0>8}"
    syssn = fmt.format(
        year=record_date.year,
        month=record_date.month,
        day=record_date.day,
        reserved='00',
        seq=seq,
    )
    log.debug('create syssn: %s', syssn)

    return syssn
Ejemplo n.º 5
0
 def create(cls, values):
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')
     values['ctime'] = now_str
     values['utime'] = now_str
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.insert(table=cls.TABLE, values=values)
         return ret
Ejemplo n.º 6
0
 def load(self):
     where = {'id': self.userid}
     keep_fields = copy.deepcopy(self.keys)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         record = conn.select_one(table=User.TABLE,
                                  fields=keep_fields,
                                  where=where)
         self.data = tools.trans_time(record, User.DATETIME_KEY)
Ejemplo n.º 7
0
 def update(self, values):
     where = {'id': self.id}
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')
     values.update({'utime': now_str})
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.update(table=RateInfo.TABLE, values=values, where=where)
         return ret
Ejemplo n.º 8
0
    def page(cls, **kwargs):
        need_query = cls.QUERY_KEY.keys()
        where = {}

        other = kwargs.get('other', ' order by sysdtm desc ')
        page = kwargs.get('page', 1)
        page_size = kwargs.get('maxnum', 10)

        syssn = kwargs.get('syssn')
        start_time = kwargs.get('start_time')
        end_time = kwargs.get('end_time')

        log.debug('TRADE_ORDER_KEY=%s', cls.KEYS)
        keep_fields = copy.deepcopy(cls.KEYS)
        if cls.TABLE_ID not in keep_fields:
            keep_fields.append(cls.TABLE_ID)
        log.debug('keep_fields=%s', keep_fields)

        if syssn:
            where['syssn'] = syssn
            with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
                record = conn.select_one(table=cls.TABLE,
                                         fields=keep_fields,
                                         where=where)
                if record:
                    return [record], 1
                else:
                    return [], 0
        else:
            for k, v in kwargs.iteritems():
                if k in need_query and kwargs.get(k):
                    where[k] = kwargs.get(k)

            if start_time and end_time:
                where.update(
                    {'sysdtm': ('between', (str(start_time), str(end_time)))})

            with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
                sql = conn.select_sql(table=cls.TABLE,
                                      where=where,
                                      fields=keep_fields,
                                      other=other)
                pager = conn.select_page(sql, pagecur=page, pagesize=page_size)
                pager.split()
                return pager.pagedata.data, pager.count
Ejemplo n.º 9
0
 def update(self, values):
     func = 'update'
     where = {'userid': self.userid}
     log.debug('func=%s|userid=%s|values=%s', func, self.userid, values)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.update(table=Profile.TABLE, values=values, where=where)
         log.debug('func=%s|userid=%s|values=%s|ret=%s', func, self.userid,
                   values, ret)
         return ret
Ejemplo n.º 10
0
 def load(self):
     keep_fields = copy.deepcopy(self.keys)
     keep_fields.append(Profile.TABLE_ID)
     where = {'userid': self.userid}
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         record = conn.select_one(table=Profile.TABLE,
                                  fields=keep_fields,
                                  where=where)
         self.data = tools.trans_time(record, Profile.DATETIME_KEY)
Ejemplo n.º 11
0
 def find_parent_parent(self):
     if self.data:
         with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
             record = conn.select_one(table=self.TABLE, where={'id': self.data['parent']})
             if record:
                 return record['parent']
             return -1
     else:
         return -1
Ejemplo n.º 12
0
 def load_three_carousel(cls):
     where = {'available': 1}
     other = ' order by priority '
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         records = conn.select(table=cls.TABLE, where=where, other=other)
         if records:
             for record in records:
                 record['id'] = str(record['id'])
                 tools.trans_time(record, cls.DATETIME_KEY)
         return records
Ejemplo n.º 13
0
    def load(self):
        where = {'id': self.id}
        keep_fields = copy.deepcopy(self.KEYS)
        if self.TABLE_ID not in keep_fields:
            keep_fields.append(self.TABLE_ID)

        with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
            record = conn.select_one(table=self.TABLE, fields=keep_fields, where=where)
            self.data = record
            self.to_string(self.data)
Ejemplo n.º 14
0
def find_parent_parent(current_parents):
    result = {}
    with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
        records = conn.select(table='box_list',
                              where={'id': ('in', list(set(current_parents)))})
        if records:
            for record in records:
                result[record['id']] = record['parent']
        log.debug('func=find_parent_parent|result=%s', result)
        return result
Ejemplo n.º 15
0
 def create(cls, values):
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')
     values['ctime'] = now_str
     values['utime'] = now_str
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         table_id = createid.new_id64(conn=conn)
         values['id'] = table_id
         ret = conn.insert(table=Order.TABLE, values=values)
         return ret
Ejemplo n.º 16
0
 def load_by_name(cls, name):
     where = {'name': name}
     keep_fields = copy.deepcopy(RateInfo.KEYS)
     if RateInfo.TABLE_ID not in keep_fields:
         keep_fields.append(RateInfo.TABLE_ID)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.select_one(table=cls.TABLE,
                               fields=keep_fields,
                               where=where)
         cls.data = ret
         return cls
Ejemplo n.º 17
0
 def load_all(cls):
     keep_fields = copy.deepcopy(RateInfo.KEYS)
     if RateInfo.TABLE_ID not in keep_fields:
         keep_fields.append(RateInfo.TABLE_ID)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         records = conn.select(table=RateInfo.TABLE, fields=keep_fields)
         if records:
             for data in records:
                 cls.to_string(data)
                 tools.trans_time(data, cls.DATETIME_KEY)
         return records
Ejemplo n.º 18
0
 def update(self, values):
     log.info('func=update|syssn=%s|values=%s', self.syssn, values)
     log.info('func=update|before_update|order=%s', self.data)
     where = {'syssn': self.syssn}
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')
     values.update({'utime': now_str})
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.update(table=self.TABLE, values=values, where=where)
         log.info('func=update|ret=%d', ret)
         return ret
Ejemplo n.º 19
0
 def load(self):
     where = {'id': self.id}
     keep_fields = copy.deepcopy(RateInfo.KEYS)
     if RateInfo.TABLE_ID not in keep_fields:
         keep_fields.append(RateInfo.TABLE_ID)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         record = conn.select_one(table=RateInfo.TABLE,
                                  fields=keep_fields,
                                  where=where)
         self.data = record
         self.to_string(self.data)
         tools.trans_time(self.data, RateInfo.DATETIME_KEY)
Ejemplo n.º 20
0
    def load_by_text_id(cls, text_id):
        where = {'text_id': text_id}
        keep_fields = copy.deepcopy(TextDetail.KEYS)
        if TextDetail.TABLE_ID not in keep_fields:
            keep_fields.append(TextDetail.TABLE_ID)

        with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
            record = conn.select_one(table=TextDetail.TABLE,
                                     fields=keep_fields,
                                     where=where)
            cls.data = record
            cls.to_string(cls.data)
            return cls
Ejemplo n.º 21
0
    def load_root(cls):
        where = {'parent': -1, 'status': define.QUESTION_ENABLE}
        # keep_fields = copy.deepcopy(Questions.KEYS)
        keep_fields = ['id', 'name', 'category']
        if Questions.TABLE_ID not in keep_fields:
            keep_fields.append(Questions.TABLE_ID)

        with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
            records = conn.select(table=Questions.TABLE, fields=keep_fields, where=where)
            if records:
                for record in records:
                    cls.to_string(record)
            return records
Ejemplo n.º 22
0
 def load_user_by_mobile(cls, mobile):
     where = {'mobile': mobile}
     keep_fields = copy.deepcopy(cls.KEYS)
     keep_fields.append(cls.TABLE_ID)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         record = conn.select_one(table=User.TABLE,
                                  fields=keep_fields,
                                  where=where)
         log.debug('func=load_user_by_mobile|mobile=%s|record=%s', mobile,
                   record)
         cls.data = record
         cls.userid = record.get('id') if record else None
         return cls
Ejemplo n.º 23
0
    def load_by_box_id(cls, box_id):
        where = {'box_id': box_id}
        keep_fields = copy.deepcopy(Order.KEYS)
        if Order.TABLE_ID not in keep_fields:
            keep_fields.append(Order.TABLE_ID)

        with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
            record = conn.select_one(table=Order.TABLE,
                                     fields=keep_fields,
                                     where=where)
            cls.data = record
            cls.to_string(cls.data)
            return cls
Ejemplo n.º 24
0
 def create(cls, user, profile):
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         try:
             conn.start()
             conn.insert(table=User.TABLE, values=user)
             userid = conn.last_insert_id()
             profile['userid'] = userid
             conn.insert(table=Profile.TABLE, values=profile)
             conn.commit()
             return True, userid
         except Exception:
             log.warn(traceback.format_exc())
             conn.rollback()
             return False, None
Ejemplo n.º 25
0
    def load(self):
        where = {'syssn': self.syssn}
        keep_fields = copy.deepcopy(self.KEYS)
        if self.TABLE_ID not in keep_fields:
            keep_fields.append(self.TABLE_ID)

        with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
            record = conn.select_one(table=self.TABLE,
                                     fields=keep_fields,
                                     where=where)
            # tools.trans_time(record, self.DATETIME_KEY)
            tools.trans_amt(record)
            self.data = record
            self.to_string(self.data)
Ejemplo n.º 26
0
 def load_all(cls, where):
     # where = {'available': define.BOX_ENABLE}
     # other = ' order by priority desc '
     other = ' order by priority '
     keep_fields = [
         'id', 'name', 'icon', 'priority', 'available', 'box_type'
     ]
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.select(table=BoxList.TABLE,
                           fields=keep_fields,
                           where=where,
                           other=other)
         if ret:
             for item in ret:
                 cls.to_string(item)
         return ret
Ejemplo n.º 27
0
 def load_by_parent_single(cls, parent):
     where = {'parent': parent, 'status': define.QUESTION_ENABLE}
     keep_fields = copy.deepcopy(Questions.KEYS)
     if Questions.TABLE_ID not in keep_fields:
         keep_fields.append(Questions.TABLE_ID)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         ret = conn.select(table=Questions.TABLE, fields=keep_fields, where=where)
         if ret:
             for data in ret:
                 cls.to_string(data)
                 children = conn.select(table=Questions.TABLE, fields=keep_fields, where={'parent': data['id']})
                 if children:
                     data['leaf_node'] = False
                 else:
                     data['leaf_node'] = True
         return ret
Ejemplo n.º 28
0
 def page(cls, **kwargs):
     need_query = cls.QUERY_KEY.keys()
     where = {}
     for k, v in kwargs.iteritems():
         if k in need_query and kwargs.get(k):
             where[k] = kwargs.get(k)
     other = kwargs.get('other', '')
     page = kwargs.get('page', 1)
     page_size = kwargs.get('maxnum', 10)
     log.debug('KEY=%s', cls.KEYS)
     keep_fields = copy.deepcopy(cls.KEYS)
     if cls.TABLE_ID not in keep_fields:
         keep_fields.append(cls.TABLE_ID)
     log.debug('keep_fields=%s', keep_fields)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         sql = conn.select_sql(table=cls.TABLE, where=where, fields=keep_fields, other=other)
         pager = conn.select_page(sql, pagecur=page, pagesize=page_size)
         pager.split()
         return pager.pagedata.data, pager.count
Ejemplo n.º 29
0
 def update_refund_trade(self, trade_update, orig_trade_update):
     log.info(
         'func=update_refund_trade|trade_update=%s|orig_trade_update=%s',
         trade_update, orig_trade_update)
     with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
         flag = True
         try:
             now_str = datetime.datetime.now().strftim('%Y-%m-%d %H:%M:%S')
             trade_update['utime'] = now_str
             orig_trade_update['utime'] = now_str
             origssn = self.data['origssn']
             orig_where = {
                 'syssn': origssn,
                 'retcd': define.XC_OK,
                 'status': define.XC_TRADE_SUCC
             }
             conn.start()
             orig_ret = conn.update(table=self.TABLE,
                                    where=orig_where,
                                    values=orig_trade_update)
             if orig_ret != 1:
                 conn.rollback()
                 flag = False
             else:
                 ret = conn.update(table=self.TABLE,
                                   where={'syssn': self.syssn},
                                   values=trade_update)
                 if ret != 1:
                     conn.rollback()
                     flag = False
                 else:
                     conn.commit()
             log.info('func=update_refund_trade|normal|flag=%s', flag)
             return flag
         except Exception:
             conn.rollback()
             flag = False
             log.warn(traceback.format_exc())
             log.info('func=update_refund_trade|except|flag=%s', flag)
             return flag
Ejemplo n.º 30
0
def get_merchant(user_id):
    func = 'get_merchant'
    log.debug('func=%s|user_id=%s', func, user_id)
    on = {'auth_user.id': 'profile.userid'}
    where = {'auth_user.id': user_id}
    keep_fields = [
        'auth_user.id', 'auth_user.mobile', 'auth_user.state',
        'auth_user.email', 'auth_user.is_active', 'profile.province',
        'profile.city', 'profile.nickname', 'profile.name', 'profile.idnumber',
        'auth_user.user_type'
    ]
    log.debug('yy')
    log.debug('token=%s', TOKEN_HOUSE_CORE)
    with get_connection_exception(TOKEN_HOUSE_CORE) as conn:
        log.debug('xx')
        ret = conn.select_join_one(table1='auth_user',
                                   table2='profile',
                                   fields=keep_fields,
                                   on=on,
                                   where=where)
        log.debug('func=%s|user_id=%s|ret=%s', func, user_id, ret)
        return ret