def format_php_data_params():
    global _table_list
    global _db_name
    global _file_path
    global _db
    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL INFO')
    tab = '\t'
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list:
            continue
        sqlInfo = u'SELECT '
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])
        print(tableColumns)
        if None == tableColumns:
            continue
        for column in tableColumns:
            sqlInfo = '%s \'%s\' => $%s , %s' % (
                sqlInfo, column['COLUMN_NAME'], column['COLUMN_NAME'],
                os.linesep)
        sqlInfo = '%s FROM `%s` AS a ' % (sqlInfo[0:-1],
                                          tableName['TABLE_NAME'])
        file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log',
                              sqlInfo + os.linesep, 'a')
def format_php_info_object():
    global _table_list
    global _db_name
    global _file_path
    global _db
    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL INFO')
    tab = '\t'
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        if tableName['TABLE_NAME'] not in _table_list:
            continue
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])
        print(tableColumns)
        if None == tableColumns:
            continue
        classInfo = ''
        for column in tableColumns:
            classInfo = '''%s%s//%s%s%s$item->%s = %s;%s''' % (
                classInfo, tab, column['COLUMN_COMMENT'], linesep, tab,
                column['COLUMN_NAME'], '""', linesep)

        file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log',
                              classInfo + os.linesep, 'a')
def format_column_list():
    global _table_list
    global _db_name
    global _file_path
    global _db
    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL INFO')
    tab = '\t'
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list and len(_table_list) > 0:
            continue
        sqlInfo = u'['
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])
        print(tableColumns)
        if None == tableColumns:
            continue
        for column in tableColumns:
            sqlInfo = "%s'%s', " % (sqlInfo, column['COLUMN_NAME'])
        sqlInfo = '%s ]' % (sqlInfo[0:-2])
        file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log',
                              sqlInfo + os.linesep, 'a')
def format_update_sql():
    global _table_list
    global _db_name
    global _file_path
    global _db
    global _sql_params_type
    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL INFO')
    tab = '\t'
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list and len(_table_list) > 0:
            continue
        sqlInfo = u'UPDATE `%s` SET ' % (tableName['TABLE_NAME'])
        pinfo = ''
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])
        print(tableColumns)
        if None == tableColumns:
            continue
        for column in tableColumns:
            # sqlInfo = '%s `%s` = ? ,' % (sqlInfo, column['COLUMN_NAME'])
            if _sql_params_type == 2:
                sqlInfo = sqlInfo + '`' + column['COLUMN_NAME'] + '` = %s ,'
            else:
                sqlInfo = sqlInfo + '`' + column[
                    'COLUMN_NAME'] + '` = {' + column['COLUMN_NAME'] + '} ,'
        # sqlInfo = '%s ) VALUES (%s) ' % (sqlInfo[0:-1], pinfo[0:-1])
        sqlInfo = sqlInfo[0:-1]
        file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log',
                              sqlInfo + os.linesep, 'a')
def format_domain():
    global _table_list
    global _db_name
    global _file_path
    global _db

    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL INFO')
    tab = '\t'
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list and len(_table_list) > 0:
            continue
        classInfo = u'public class %s { %s' % (tableName['TABLE_NAME'],
                                               linesep)
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])
        print(tableColumns)
        if None == tableColumns:
            continue
        for column in tableColumns:
            t = 'UnKnow'
            c = column['DATA_TYPE'].lower()
            if c in [
                    'varchar', 'text', 'char', 'longtext', 'enum',
                    'mediumtext', 'tinytext'
            ]:
                t = 'String'
            elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']:
                t = 'Integer'
            elif c in ['bigint']:
                t = 'Long'
            elif c in ['float', 'double', 'boolean', 'decimal', 'peal']:
                t = 'Double'
            elif c in ['date', 'datetime', 'timestamp', 'time', 'year']:
                t = 'Date'

            classInfo = '''%s%s%s/* %s%s * %s%s%s */%s%sprivate %s %s;%s''' % (
                classInfo, linesep, tab, linesep, tab,
                column['COLUMN_COMMENT'], linesep, tab, linesep, tab, t,
                column['COLUMN_NAME'], linesep)

        classInfo = '%s}' % (classInfo)

        file_utils.write_file(_file_path + tableName['TABLE_NAME'] + '.log',
                              classInfo + os.linesep, 'a')
def format_php_data_domain():
    global _table_list
    global _db_name
    global _file_path
    global _db
    tableNames = get_db_table_list(_db_name)
    print(tableNames)
    if None == tableNames:
        print('NULL TABLE')

    temp = file_utils.read_all_file('./temp.php')
    linesep = file_utils.get_line_sep()
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list:
            continue

        tbs = tbname.split('_')
        tbs2 = []
        for tb in tbs:
            tbs2.append(tb.capitalize())
        dmName = 'Data' + ''.join(tbs2)

        tableColumns = get_db_table_column_list(_db_name, tbname)
        if None == tableColumns:
            continue
        fields = ''
        fid = tableColumns[0]['COLUMN_NAME']
        fname = tableColumns[0]['COLUMN_NAME']

        for column in tableColumns:
            t = 'string'
            c = column['DATA_TYPE'].lower()
            if c in [
                    'varchar', 'text', 'char', 'longtext', 'enum',
                    'mediumtext', 'tinytext'
            ]:
                t = "string"
            elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']:
                t = 'int'
            elif c in ['bigint']:
                t = 'int'
            elif c in ['float', 'double', 'boolean', 'decimal', 'peal']:
                t = 'float'
            elif c in ['date', 'datetime', 'timestamp', 'time', 'year']:
                t = "string"

            if 'name' == column['COLUMN_NAME']:
                fname = column['COLUMN_NAME']
            if 'title' == column['COLUMN_NAME']:
                fname = column['COLUMN_NAME']
            fields = '''%s%s        $fields['%s'] = $this->setFieldInfo('%s' ,'%s' ,0 , '%s'); ''' % (
                fields, linesep, column['COLUMN_NAME'], column['COLUMN_NAME'],
                t, column['COLUMN_COMMENT'])

        domain = temp.replace('{DomainName}', dmName)
        domain = domain.replace('{TableName}', tbname)
        domain = domain.replace('{fields}', fields)
        domain = domain.replace('{id}', fid)
        domain = domain.replace('{name}', fname)
        file_utils.write_file(_file_path + dmName + '.php',
                              domain + os.linesep, 'a')

    return
def format_gorm_domain():
    global _table_list
    global _db_name
    global _file_path
    global _db

    tableNames = get_db_table_list(_db_name)
    if None == tableNames:
        logging.info('NULL INFO')
        return

    _file_path = os.path.split(os.path.realpath(
        __file__))[0] + os.sep + 'template' + os.sep + 'po' + os.sep
    file_utils.mkdirs(_file_path, True)

    tab = ' ' * 4
    linesep = file_utils.get_line_sep()

    columnNames = {}
    tableNamess = {}
    for tableName in tableNames:
        tbname = tableName['TABLE_NAME']
        if tbname not in _table_list and len(_table_list) > 0:
            continue

        className = str_utils.under_score_case_to_camel_case(
            format_table_pre(tableName['TABLE_NAME'])) + 'Po'

        tableNamess['TN' + str_utils.under_score_case_to_camel_case(
            format_table_pre(
                tableName['TABLE_NAME']))] = tableName['TABLE_NAME']

        classInfo = u'''package po

import "time"

type %s struct { %s''' % (className, linesep)
        tableColumns = get_db_table_column_list(_db_name,
                                                tableName['TABLE_NAME'])

        if None == tableColumns:
            continue
        for column in tableColumns:
            t = 'UnKnow'
            c = '{}'.format(str(column['DATA_TYPE']).lower())
            columnName = str_utils.under_score_case_to_camel_case(
                column['COLUMN_NAME'])

            if columnNames.get(columnName, None) == None:
                columnNames['CN' + columnName] = column['COLUMN_NAME']

            comment = '{}'.format(str(column['COLUMN_COMMENT']))
            columnType = '{}'.format(str(column['COLUMN_TYPE']))
            size = column['CHARACTER_MAXIMUM_LENGTH']
            key = column['COLUMN_KEY']
            sizeScale = 0
            default = column['COLUMN_DEFAULT']
            isNull = column['IS_NULLABLE']

            extra = ''

            if c in [
                    'varchar', 'text', 'char', 'longtext', 'enum',
                    'mediumtext', 'tinytext'
            ]:
                t = 'string'
            elif c in ['int', 'tinyint', 'smallint', 'mediumint', 'bit']:
                t = 'int'
                size = column['NUMERIC_PRECISION']
            elif c in ['bigint']:
                t = 'int64'
                size = column['NUMERIC_PRECISION']
            elif c in ['float', 'double', 'boolean', 'decimal', 'peal']:
                t = 'float'
                size = column['NUMERIC_PRECISION']
                sizeScale = column['NUMERIC_SCALE']
            elif c in ['date', 'datetime', 'timestamp', 'time', 'year']:
                t = 'time.Time'
                extra = column['EXTRA']

            classInfo = '''%s
%s// %s %s
%s%s %s %s %s `gorm:"type:%s;column:%s" json:"%s"`
''' % (classInfo, tab, columnName, comment, tab, columnName, tab,
            format_go_db_type_is_null(isNull, key, t), tab, columnType,
            column['COLUMN_NAME'], columnName[:1].lower() + columnName[1:])

        classInfo = '%s}' % (classInfo)
        classInfo = '''%s

func (%s) TableName() string {
    return "%s"
} ''' % (classInfo, className, tableName['TABLE_NAME'])

        file_utils.write_file(
            _file_path + format_table_pre(tableName['TABLE_NAME']) + '_po.go',
            classInfo + os.linesep, 'w')

    # 写列名常量
    columnContent = '''package po 

'''
    for k, v in columnNames.items():
        columnContent = '%s%sconst %s = "%s"' % (columnContent, linesep, k, v)
    file_utils.write_file(_file_path + 'column_name.go',
                          columnContent + os.linesep, 'w')

    tableContent = '''package po

'''
    for k, v in tableNamess.items():
        tableContent = '%s%sconst %s = "%s"' % (tableContent, linesep, k, v)
    file_utils.write_file(_file_path + 'table_name.go',
                          tableContent + os.linesep, 'w')