VehicleMappingServiceImpl.java
2.75 KB
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
package com.bsth.service.impl;
import com.bsth.entity.VehicleMapping;
import com.bsth.service.VehicleMappingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class VehicleMappingServiceImpl implements VehicleMappingService {
@Autowired
@Qualifier("msJdbcTemplate")
private JdbcTemplate msJdbcTemplate;
@Override
public void save(VehicleMapping vehicleMapping) {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
if (vehicleMapping.getId() == 0) {
sql.append("insert into bsth_c_device_sim_mapping (device_id,relation_device_id,sim,relation_sim,ext_enabled,in_code,line_id,online_date) values (?, ?, ?, ?, ?, ?, ?, ?)");
params.addAll(Arrays.asList(vehicleMapping.getDeviceId(), vehicleMapping.getRelationDeviceId(), vehicleMapping.getSim(), vehicleMapping.getRelationSim(), vehicleMapping.getExtEnabled(), vehicleMapping.getInCode(), vehicleMapping.getLineId(), new Date()));
} else {
sql.append("update bsth_c_device_sim_mapping set device_id = ?,relation_device_id = ?,sim = ?,relation_sim = ?,ext_enabled = ?,in_code = ?,line_id = ? where id = ?");
params.addAll(Arrays.asList(vehicleMapping.getDeviceId(), vehicleMapping.getRelationDeviceId(), vehicleMapping.getSim(), vehicleMapping.getRelationSim(), vehicleMapping.getExtEnabled(), vehicleMapping.getInCode(), vehicleMapping.getLineId(), vehicleMapping.getId()));
}
msJdbcTemplate.update(sql.toString(), params.toArray());
}
@Override
public List<VehicleMapping> findByParams(Map<String, Object> params) {
List<Object> objs = new ArrayList<>();
StringBuilder sql = new StringBuilder("select * from bsth_c_device_sim_mapping where 1 = 1");
for (Map.Entry<String, Object> entry : params.entrySet()) {
String key = entry.getKey();
if ("id".equals(key) || "lineId".equals(key) || "extEnabled".equals(key)) {
sql.append(" and ").append(camelToSnake(key)).append(" = ?");
} else {
sql.append(" and ").append(camelToSnake(key)).append(" like concat('%',?,'%')");
}
objs.add(entry.getValue());
}
List<VehicleMapping> list = msJdbcTemplate.query(sql.toString(), objs.toArray(), BeanPropertyRowMapper.newInstance(VehicleMapping.class));
return list;
}
public static String camelToSnake(String str) {
return str.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase();
}
}