SysDeptDaoImpl.java 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. package com.ydtech.modules.admin.dao.impl;
  2. import com.github.drinkjava2.jdialects.Dialect;
  3. import com.ydtech.core.page.PageResult;
  4. import com.ydtech.modules.admin.dao.SysDeptDao;
  5. import com.ydtech.modules.admin.model.SysDept;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  8. import org.springframework.jdbc.core.JdbcTemplate;
  9. import org.springframework.jdbc.core.PreparedStatementCreator;
  10. import org.springframework.jdbc.core.RowMapper;
  11. import org.springframework.jdbc.support.GeneratedKeyHolder;
  12. import org.springframework.jdbc.support.KeyHolder;
  13. import org.springframework.stereotype.Repository;
  14. import javax.sql.DataSource;
  15. import java.sql.Connection;
  16. import java.sql.PreparedStatement;
  17. import java.sql.ResultSet;
  18. import java.sql.SQLException;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. @Repository
  22. public class SysDeptDaoImpl implements SysDeptDao {
  23. @Autowired
  24. public DataSource dataSource;
  25. public static class SysDeptRowMapper implements RowMapper {
  26. public SysDept mapRow(ResultSet resultSet, int rowNum) throws SQLException {
  27. SysDept model = new SysDept();
  28. model.setId(resultSet.getString("id"));
  29. model.setName(resultSet.getString("name"));
  30. model.setParentId(resultSet.getString("parent_id"));
  31. model.setOrderNum(resultSet.getInt("order_num"));
  32. model.setCreateBy(resultSet.getString("create_by"));
  33. model.setCreateTime(resultSet.getDate("create_time"));
  34. model.setLastUpdateBy(resultSet.getString("last_update_by"));
  35. model.setLastUpdateTime(resultSet.getDate("last_update_time"));
  36. model.setDelFlag(resultSet.getInt("del_flag"));
  37. model.setComtype(resultSet.getString("comtype"));
  38. model.setComlevel(resultSet.getString("comlevel"));
  39. model.setAddress(resultSet.getString("address"));
  40. model.setLeadername(resultSet.getString("leadername"));
  41. model.setLeaderphone(resultSet.getString("leaderphone"));
  42. model.setComattribute(resultSet.getString("comattribute"));
  43. model.setIsstop(resultSet.getString("isstop"));
  44. model.setDeptCode(resultSet.getString("dept_code"));
  45. model.setProvince(resultSet.getString("province"));
  46. model.setCity(resultSet.getString("city"));
  47. model.setArea(resultSet.getString("area"));
  48. model.setHouse(resultSet.getString("house"));
  49. model.setDeptType(resultSet.getString("dept_type"));
  50. return model;
  51. }
  52. }
  53. @Override
  54. public SysDept selectByPk(String id) {
  55. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t where id=?";
  56. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  57. return (SysDept) jdbcTemplate.queryForObject(sql,
  58. new Object[]{id}, new SysDeptRowMapper());
  59. }
  60. @Override
  61. public List<SysDept> selectAll() {
  62. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t ";
  63. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  64. return jdbcTemplate.query(sql, new SysDeptRowMapper());
  65. }
  66. public List<SysDept> selectList(String whereCase, Object[] paramValues) {
  67. String sql = "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t " + whereCase;
  68. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  69. return jdbcTemplate.query(sql, paramValues, new SysDeptRowMapper());
  70. }
  71. public Integer count(String whereCase, Object[] paramValues) {
  72. String sql = "select count(1) from sys_dept t " + whereCase;
  73. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  74. return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
  75. }
  76. public PageResult selectPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
  77. Dialect dialect = Dialect.guessDialect(dataSource);
  78. String sql = dialect.pagin(pageNumber, pageSize, "select t.id, t.name, t.parent_id, t.order_num, t.create_by, t.create_time, t.last_update_by, t.last_update_time, t.del_flag, t.comtype, t.comlevel, t.address, t.leadername, t.leaderphone, t.comattribute, t.isstop, t.dept_code, t.province, t.city, t.area, t.house, t.dept_type from sys_dept t " + whereCase);
  79. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  80. List<SysDept> recordList = jdbcTemplate.query(sql, paramValues, new SysDeptRowMapper());
  81. int totalCount = count(whereCase, paramValues);
  82. PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
  83. return PageResult;
  84. }
  85. @Override
  86. public Integer insert(SysDept model) {
  87. String sql = "insert into sys_dept ( id, name, parent_id, order_num, create_by, create_time, last_update_by, last_update_time, del_flag, comtype, comlevel, address, leadername, leaderphone, comattribute, isstop, dept_code, province, city, area, house, dept_type) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
  88. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  89. Object[] params = new Object[]{model.getId(), model.getName(), model.getParentId(), model.getOrderNum(), model.getCreateBy(), model.getCreateTime(), model.getLastUpdateBy(), model.getLastUpdateTime(), model.getDelFlag(), model.getComtype(), model.getComlevel(), model.getAddress(), model.getLeadername(), model.getLeaderphone(), model.getComattribute(), model.getIsstop(), model.getDeptCode(), model.getProvince(), model.getCity(), model.getArea(), model.getHouse(), model.getDeptType()};
  90. int out = jdbcTemplate.update(sql, params);
  91. return out;
  92. }
  93. @Override
  94. public Integer insertReturnPk(SysDept model) {
  95. String sql = "insert into sys_dept ( id, name, parent_id, order_num, create_by, create_time, last_update_by, last_update_time, del_flag, comtype, comlevel, address, leadername, leaderphone, comattribute, isstop, dept_code, province, city, area, house, dept_type) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
  96. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  97. KeyHolder keyHolder = new GeneratedKeyHolder();
  98. jdbcTemplate.update(new PreparedStatementCreator() {
  99. @Override
  100. public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
  101. PreparedStatement ps = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
  102. ps.setObject(1, model.getId());
  103. ps.setObject(2, model.getName());
  104. ps.setObject(3, model.getParentId());
  105. ps.setObject(4, model.getOrderNum());
  106. ps.setObject(5, model.getCreateBy());
  107. ps.setObject(6, model.getCreateTime());
  108. ps.setObject(7, model.getLastUpdateBy());
  109. ps.setObject(8, model.getLastUpdateTime());
  110. ps.setObject(9, model.getDelFlag());
  111. ps.setObject(10, model.getComtype());
  112. ps.setObject(11, model.getComlevel());
  113. ps.setObject(12, model.getAddress());
  114. ps.setObject(13, model.getLeadername());
  115. ps.setObject(14, model.getLeaderphone());
  116. ps.setObject(15, model.getComattribute());
  117. ps.setObject(16, model.getIsstop());
  118. ps.setObject(17, model.getDeptCode());
  119. ps.setObject(18, model.getProvince());
  120. ps.setObject(19, model.getCity());
  121. ps.setObject(20, model.getArea());
  122. ps.setObject(21, model.getHouse());
  123. ps.setObject(22, model.getDeptType());
  124. return ps;
  125. }
  126. }, keyHolder);
  127. return keyHolder.getKey().intValue();
  128. }
  129. @Override
  130. public Integer insertSelective(SysDept model) {
  131. StringBuffer sbSql = new StringBuffer();
  132. StringBuffer sbParams = new StringBuffer();
  133. ArrayList<Object> alParamsValues = new ArrayList<Object>();
  134. String pre = "";
  135. if (model.getId() != null) {
  136. sbSql.append(pre + "id");
  137. sbParams.append(pre + "?");
  138. alParamsValues.add(model.getId());
  139. pre = ",";
  140. }
  141. if (model.getName() != null) {
  142. sbSql.append(pre + "name");
  143. sbParams.append(pre + "?");
  144. alParamsValues.add(model.getName());
  145. pre = ",";
  146. }
  147. if (model.getParentId() != null) {
  148. sbSql.append(pre + "parent_id");
  149. sbParams.append(pre + "?");
  150. alParamsValues.add(model.getParentId());
  151. pre = ",";
  152. }
  153. if (model.getOrderNum() != null) {
  154. sbSql.append(pre + "order_num");
  155. sbParams.append(pre + "?");
  156. alParamsValues.add(model.getOrderNum());
  157. pre = ",";
  158. }
  159. if (model.getCreateBy() != null) {
  160. sbSql.append(pre + "create_by");
  161. sbParams.append(pre + "?");
  162. alParamsValues.add(model.getCreateBy());
  163. pre = ",";
  164. }
  165. if (model.getCreateTime() != null) {
  166. sbSql.append(pre + "create_time");
  167. sbParams.append(pre + "?");
  168. alParamsValues.add(model.getCreateTime());
  169. pre = ",";
  170. }
  171. if (model.getLastUpdateBy() != null) {
  172. sbSql.append(pre + "last_update_by");
  173. sbParams.append(pre + "?");
  174. alParamsValues.add(model.getLastUpdateBy());
  175. pre = ",";
  176. }
  177. if (model.getLastUpdateTime() != null) {
  178. sbSql.append(pre + "last_update_time");
  179. sbParams.append(pre + "?");
  180. alParamsValues.add(model.getLastUpdateTime());
  181. pre = ",";
  182. }
  183. if (model.getDelFlag() != null) {
  184. sbSql.append(pre + "del_flag");
  185. sbParams.append(pre + "?");
  186. alParamsValues.add(model.getDelFlag());
  187. pre = ",";
  188. }
  189. if (model.getComtype() != null) {
  190. sbSql.append(pre + "comtype");
  191. sbParams.append(pre + "?");
  192. alParamsValues.add(model.getComtype());
  193. pre = ",";
  194. }
  195. if (model.getComlevel() != null) {
  196. sbSql.append(pre + "comlevel");
  197. sbParams.append(pre + "?");
  198. alParamsValues.add(model.getComlevel());
  199. pre = ",";
  200. }
  201. if (model.getAddress() != null) {
  202. sbSql.append(pre + "address");
  203. sbParams.append(pre + "?");
  204. alParamsValues.add(model.getAddress());
  205. pre = ",";
  206. }
  207. if (model.getLeadername() != null) {
  208. sbSql.append(pre + "leadername");
  209. sbParams.append(pre + "?");
  210. alParamsValues.add(model.getLeadername());
  211. pre = ",";
  212. }
  213. if (model.getLeaderphone() != null) {
  214. sbSql.append(pre + "leaderphone");
  215. sbParams.append(pre + "?");
  216. alParamsValues.add(model.getLeaderphone());
  217. pre = ",";
  218. }
  219. if (model.getComattribute() != null) {
  220. sbSql.append(pre + "comattribute");
  221. sbParams.append(pre + "?");
  222. alParamsValues.add(model.getComattribute());
  223. pre = ",";
  224. }
  225. if (model.getIsstop() != null) {
  226. sbSql.append(pre + "isstop");
  227. sbParams.append(pre + "?");
  228. alParamsValues.add(model.getIsstop());
  229. pre = ",";
  230. }
  231. if (model.getDeptCode() != null) {
  232. sbSql.append(pre + "dept_code");
  233. sbParams.append(pre + "?");
  234. alParamsValues.add(model.getDeptCode());
  235. pre = ",";
  236. }
  237. if (model.getProvince() != null) {
  238. sbSql.append(pre + "province");
  239. sbParams.append(pre + "?");
  240. alParamsValues.add(model.getProvince());
  241. pre = ",";
  242. }
  243. if (model.getCity() != null) {
  244. sbSql.append(pre + "city");
  245. sbParams.append(pre + "?");
  246. alParamsValues.add(model.getCity());
  247. pre = ",";
  248. }
  249. if (model.getArea() != null) {
  250. sbSql.append(pre + "area");
  251. sbParams.append(pre + "?");
  252. alParamsValues.add(model.getArea());
  253. pre = ",";
  254. }
  255. if (model.getHouse() != null) {
  256. sbSql.append(pre + "house");
  257. sbParams.append(pre + "?");
  258. alParamsValues.add(model.getHouse());
  259. pre = ",";
  260. }
  261. if (model.getDeptType() != null) {
  262. sbSql.append(pre + "dept_type");
  263. sbParams.append(pre + "?");
  264. alParamsValues.add(model.getDeptType());
  265. pre = ",";
  266. }
  267. String sql = "INSERT INTO sys_dept (" + sbSql.toString() + ") VALUES (" + sbParams.toString() + ")";
  268. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  269. Object[] params = alParamsValues.toArray();
  270. int out = jdbcTemplate.update(sql, params);
  271. return out;
  272. }
  273. @Override
  274. public Integer update(SysDept model) {
  275. String sql = "update sys_dept set name=?, parent_id=?, order_num=?, create_by=?, create_time=?, last_update_by=?, last_update_time=?, del_flag=?, comtype=?, comlevel=?, address=?, leadername=?, leaderphone=?, comattribute=?, isstop=?, dept_code=?, province=?, city=?, area=?, house=?, dept_type=? where id=?";
  276. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  277. Object[] params = new Object[]{model.getName(), model.getParentId(), model.getOrderNum(), model.getCreateBy(), model.getCreateTime(), model.getLastUpdateBy(), model.getLastUpdateTime(), model.getDelFlag(), model.getComtype(), model.getComlevel(), model.getAddress(), model.getLeadername(), model.getLeaderphone(), model.getComattribute(), model.getIsstop(), model.getDeptCode(), model.getProvince(), model.getCity(), model.getArea(), model.getHouse(), model.getDeptType(), model.getId()};
  278. return jdbcTemplate.update(sql, params);
  279. }
  280. @Override
  281. public Integer updateSelective(SysDept model) {
  282. StringBuffer sbSql = new StringBuffer();
  283. StringBuffer sbParams = new StringBuffer();
  284. ArrayList<Object> alParamsValues = new ArrayList<Object>();
  285. String pre = "";
  286. String preWhere = "";
  287. if (model.getName() != null) {
  288. sbSql.append(pre + "name=?");
  289. alParamsValues.add(model.getName());
  290. pre = ",";
  291. }
  292. if (model.getParentId() != null) {
  293. sbSql.append(pre + "parent_id=?");
  294. alParamsValues.add(model.getParentId());
  295. pre = ",";
  296. }
  297. if (model.getOrderNum() != null) {
  298. sbSql.append(pre + "order_num=?");
  299. alParamsValues.add(model.getOrderNum());
  300. pre = ",";
  301. }
  302. if (model.getCreateBy() != null) {
  303. sbSql.append(pre + "create_by=?");
  304. alParamsValues.add(model.getCreateBy());
  305. pre = ",";
  306. }
  307. if (model.getCreateTime() != null) {
  308. sbSql.append(pre + "create_time=?");
  309. alParamsValues.add(model.getCreateTime());
  310. pre = ",";
  311. }
  312. if (model.getLastUpdateBy() != null) {
  313. sbSql.append(pre + "last_update_by=?");
  314. alParamsValues.add(model.getLastUpdateBy());
  315. pre = ",";
  316. }
  317. if (model.getLastUpdateTime() != null) {
  318. sbSql.append(pre + "last_update_time=?");
  319. alParamsValues.add(model.getLastUpdateTime());
  320. pre = ",";
  321. }
  322. if (model.getDelFlag() != null) {
  323. sbSql.append(pre + "del_flag=?");
  324. alParamsValues.add(model.getDelFlag());
  325. pre = ",";
  326. }
  327. if (model.getComtype() != null) {
  328. sbSql.append(pre + "comtype=?");
  329. alParamsValues.add(model.getComtype());
  330. pre = ",";
  331. }
  332. if (model.getComlevel() != null) {
  333. sbSql.append(pre + "comlevel=?");
  334. alParamsValues.add(model.getComlevel());
  335. pre = ",";
  336. }
  337. if (model.getAddress() != null) {
  338. sbSql.append(pre + "address=?");
  339. alParamsValues.add(model.getAddress());
  340. pre = ",";
  341. }
  342. if (model.getLeadername() != null) {
  343. sbSql.append(pre + "leadername=?");
  344. alParamsValues.add(model.getLeadername());
  345. pre = ",";
  346. }
  347. if (model.getLeaderphone() != null) {
  348. sbSql.append(pre + "leaderphone=?");
  349. alParamsValues.add(model.getLeaderphone());
  350. pre = ",";
  351. }
  352. if (model.getComattribute() != null) {
  353. sbSql.append(pre + "comattribute=?");
  354. alParamsValues.add(model.getComattribute());
  355. pre = ",";
  356. }
  357. if (model.getIsstop() != null) {
  358. sbSql.append(pre + "isstop=?");
  359. alParamsValues.add(model.getIsstop());
  360. pre = ",";
  361. }
  362. if (model.getDeptCode() != null) {
  363. sbSql.append(pre + "dept_code=?");
  364. alParamsValues.add(model.getDeptCode());
  365. pre = ",";
  366. }
  367. if (model.getProvince() != null) {
  368. sbSql.append(pre + "province=?");
  369. alParamsValues.add(model.getProvince());
  370. pre = ",";
  371. }
  372. if (model.getCity() != null) {
  373. sbSql.append(pre + "city=?");
  374. alParamsValues.add(model.getCity());
  375. pre = ",";
  376. }
  377. if (model.getArea() != null) {
  378. sbSql.append(pre + "area=?");
  379. alParamsValues.add(model.getArea());
  380. pre = ",";
  381. }
  382. if (model.getHouse() != null) {
  383. sbSql.append(pre + "house=?");
  384. alParamsValues.add(model.getHouse());
  385. pre = ",";
  386. }
  387. if (model.getDeptType() != null) {
  388. sbSql.append(pre + "dept_type=?");
  389. alParamsValues.add(model.getDeptType());
  390. pre = ",";
  391. }
  392. if (model.getId() != null) {
  393. sbParams.append(preWhere + "id=?");
  394. alParamsValues.add(model.getId());
  395. preWhere = ",";
  396. }
  397. if (!sbSql.toString().equalsIgnoreCase("")) {
  398. String sql = "update sys_dept set " + sbSql.toString() + " where " + sbParams.toString();
  399. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  400. Object[] params = alParamsValues.toArray();
  401. return jdbcTemplate.update(sql, params);
  402. }
  403. return 0;
  404. }
  405. @Override
  406. public Integer delete(String id) {
  407. String sql = "delete from sys_dept where id=?";
  408. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  409. return jdbcTemplate.update(sql, id);
  410. }
  411. @Override
  412. public Integer delete(List<SysDept> lsSysDept) {
  413. String sql = "delete from sys_dept where id=?";
  414. JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  415. return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
  416. @Override
  417. public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
  418. preparedStatement.setString(1, lsSysDept.get(i).getId());
  419. }
  420. @Override
  421. public int getBatchSize() {
  422. return lsSysDept.size();
  423. }
  424. }).length;
  425. }
  426. }