zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
package cn.autoform.web.service.datasource;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import cn.autoform.db.entity.DBConnectionManagerEntity;
import cn.autoform.db.entity.FieldPropertyEntity;
import cn.autoform.db.entity.FormFieldEntity;
import cn.autoform.db.entity.FormdatsourceEntity;
import cn.autoform.fw.service.DatabaseMetaDateService;
import cn.autoform.web.mapper.datasource.DatasourceMapper;
 
/**
 * 数据源管理Service
 * @author liumy
 *
 */
@Service
public class DatasourceService {
    
    @Autowired
    private DatasourceMapper datasourceMapper = null;
    
    @Autowired
    private DatabaseMetaDateService databaseMetaDateService = null;
 
    /**
     * 从表单数据源表中取出数据
     * @param tenantID
     * @param formid
     * @return
     */
    public List<FormdatsourceEntity> getFormdatsourceList(String tenantID, String formid){
        return datasourceMapper.getFormdatsourceList(tenantID, formid);
    }
    
    /**
     * 新增一条数据源
     * @param tenantID
     * @param formID
     * @param dataSourceName
     * @param databaseName
     * @param datasource
     * @param createUser
     * @return
     */
    public int createFormdatsource(FormdatsourceEntity formdatsource) {
        
        return datasourceMapper.createFormdatsource(formdatsource);
    }
    
    /**
     * 新增一条数据连接
     * @param tenantID
     * @param dataConnectionName
     * @param dBconnectionString
     * @param dBUserID
     * @param dBPassword
     * @param dBType
     * @param createUser
     * @return
     */
    public int createDBconnection(DBConnectionManagerEntity dBConnectionManagerEntity) {
        
        return datasourceMapper.createDBconnection(dBConnectionManagerEntity);
    }
    
    /**
     * 删除一条数据源
     * @param tenantID
     * @param formID
     * @param dataSourceName
     * @return
     */
    public int deleteFormdatsource(String tenantID,String formID, String dataSourceName) {
        return datasourceMapper.deleteFormdatsource(formID, tenantID, dataSourceName);
    }
    
    /**
     * 数据连接名取得
     * @param tenantID
     * @return
     */
    public List<String> getDataConnectionName(String tenantID) {
        return datasourceMapper.getDataConnectionName(tenantID);
    }
    
    /**
     * 外部数据连接取得
     * @param tenantID
     * @param dataConnectionName
     * @return
     */
    public DBConnectionManagerEntity getDBconnectionList(String tenantID,String dataConnectionName) {
        return datasourceMapper.getDBconnectionList(tenantID, dataConnectionName);
    }
    
    /**
     * 详细数据源取得
     * @param tenantID
     * @param formID
     * @param dataSourceName
     * @return
     */
    public List<FormdatsourceEntity> getDatasource(String tenantID,String formID, String dataSourceName) {
        return datasourceMapper.getDatasource(formID, tenantID, dataSourceName);
    }
    
    /**
     * 获取设定数据源的相关字段信息
     * @param tenantID
     * @param formID
     * @return
     */
    public List<FieldPropertyEntity> getFieldPropertyList(String tenantID,String formID,int columnOrderNum,String property) {
        return datasourceMapper.getFieldPropertyList(tenantID, formID, columnOrderNum, property);
    }
    
    /**
     * 获取字段信息
     * @param tenantID
     * @param formID
     * @param columnOrderNum
     * @return
     */
    public List<FormFieldEntity> getFieldkeyList(String tenantID,String formID, int columnOrderNum) {
        return datasourceMapper.getFieldkeyList(tenantID, formID, columnOrderNum);
    }
    
    /**
     * 获取字段顺番
     * @param tenantID
     * @param formID
     * @return
     */
    public List<FieldPropertyEntity> getColumnNum(String tenantID,String formID) {
        return datasourceMapper.getColumnNum(tenantID, formID);
    }
    
    /**
     * 列值取得
     * @param tenantID
     * @param formID
     * @param dataSourceName
     * @param columnNames
     * @return
     * @throws Exception 
     */
    public Map<String,List<String>> getColumnsValues(String tenantID, String formID, String dataSourceName, String columnNames){
        
        List<FormdatsourceEntity> listDataSource = this.getDatasource(tenantID, formID, dataSourceName);
        
        Map<String,List<String>> mpColumnInfo = new HashMap<String,List<String>>();
        
        FormdatsourceEntity formdatsource = listDataSource.get(0);
        
        String databaseName = formdatsource.getDatabaseName();
        
        String datasource = formdatsource.getDatasource();
        
        String[] arrColumns = columnNames.split(",");
        
        for(String column : arrColumns) {
            
            List<String> listColumnValue = databaseMetaDateService.getColumnsInfo(tenantID, databaseName, datasource, column);
            
            mpColumnInfo.put(column, listColumnValue);
        }
        return mpColumnInfo;
    }
    
}