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
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
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
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
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
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)
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
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
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
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)
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
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
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)
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
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
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
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
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
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)
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
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
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
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
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
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)
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
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
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
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
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