groovy.hbs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package {{{ package }}}
  2. import com.yvan.core.DbConv
  3. import com.yvan.data.jdbc.DaoFactory
  4. import com.yvan.model.YvanExt
  5. import com.yvan.model.response.Model
  6. import com.yvan.model.response.ModelOps
  7. import groovy.util.logging.Slf4j
  8. import static com.yvan.studio.model.query.{{{ qClass }}}.{{{ qClassTable }}}
  9. @Slf4j
  10. class {{{ groovyClass }}} {
  11. static def queryDsl = DaoFactory.getQueryDSL()
  12. static def mybatis = DaoFactory.getMyBatis({{{ groovyClass }}}.class)
  13. {{#if pagination}}
  14. static def queryByPage(Map params) {
  15. def list = mybatis.queryByPage("queryByPage", YvanExt.getQueryByPage(), params)
  16. return Model.newSuccess(list)
  17. }
  18. {{else}}
  19. static def query(Map params) {
  20. def list = mybatis.queryByPage("query", YvanExt.getQueryByPage(), params)
  21. return Model.newSuccess(list)
  22. }
  23. {{/if}}
  24. static def deleteItem(params) {
  25. queryDsl.delete(basDict)
  26. {{#each deleteWheres}}.where({{{ qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))){{/each}}
  27. .execute()
  28. return ModelOps.newSuccess()
  29. }
  30. static def saveItems(params) {
  31. // 获取 queryDsl 针对数据库表的 insert/update/delete 的操作对象
  32. def insert = queryDsl.insert({{{ qClassTable }}})
  33. def update = queryDsl.update({{{ qClassTable }}})
  34. def delete = queryDsl.delete({{{ qClassTable }}})
  35. for (def row : params.newRows) {
  36. // 提取 newRows 全部新加的数据,构建insert的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  37. insert
  38. {{#each insertColumns}}.setx({{{ qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}}){{/each}}
  39. .addBatch()
  40. }
  41. for (def row : params.modifyRows) {
  42. // 提取 modifyRows 全部修改的数据,构建update的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  43. if (row._origin.asn_in_id != null) {
  44. update
  45. {{#each updateColumns}}.setx({{{ qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}}){{/each}}
  46. {{#each updateWheres}}.where({{{ qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))){{/each}}
  47. .addBatch()
  48. }
  49. }
  50. for (def row : params.removeRecords) {
  51. // 提取 removeRecords 全部删除的数据,构建删除条件,添加到 "批量执行(addBatch)" 的缓存中
  52. if (row._origin.asn_in_id != null) {
  53. delete
  54. {{#each deleteWheres}}.where({{{ qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))){{/each}}
  55. .addBatch()
  56. }
  57. }
  58. def i = 0 // 插入行计数
  59. def u = 0 // 更新行计数
  60. def d = 0 // 删除行计数
  61. def msg = ""
  62. // 构建提示语句
  63. if (insert.getBatchCount() > 0) {
  64. i = insert.execute()
  65. msg += ",插入${i}行"
  66. }
  67. if (update.getBatchCount() > 0) {
  68. u += update.execute()
  69. msg += ",更新${u}行"
  70. }
  71. if (delete.getBatchCount() > 0) {
  72. d += delete.execute()
  73. msg += ",删除${d}行"
  74. }
  75. def rowEffect = i + u + d
  76. if (rowEffect <= 0) {
  77. return ModelOps.newSuccess().setMsg("没有要更新的内容")
  78. }
  79. // 返回前端
  80. return Model.newSuccess([
  81. update : u,
  82. insert : i,
  83. delete : d,
  84. rowEffect: rowEffect
  85. ]).setMsg("保存成功" + msg)
  86. }
  87. }