groovy.hbs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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.galaxis.wms.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. def d = queryDsl.delete({{{ qClassTable }}})
  26. {{#each deleteWheres}}
  27. .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(params._origin.{{{ paramField }}})))
  28. {{/each}}
  29. .execute()
  30. return ModelOps.newSuccess(d)
  31. }
  32. static def saveItems(params) {
  33. // 获取 queryDsl 针对数据库表的 insert/update/delete 的操作对象
  34. def insert = queryDsl.insert({{{ qClassTable }}})
  35. def update = queryDsl.update({{{ qClassTable }}})
  36. def delete = queryDsl.delete({{{ qClassTable }}})
  37. for (def row : params.newRows) {
  38. // 提取 newRows 全部新加的数据,构建insert的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  39. insert
  40. {{#each insertColumns}}
  41. .setx({{{ ../qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}})
  42. {{/each}}
  43. .addBatch()
  44. }
  45. for (def row : params.modifyRows) {
  46. // 提取 modifyRows 全部修改的数据,构建update的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  47. if ({{#each updateWheres}}row._origin.{{{ paramField }}} != null{{#if @last}}{{else}} && {{/if}}{{/each}}) {
  48. update
  49. {{#each updateColumns}}
  50. .setx({{{ ../qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}})
  51. {{/each}}
  52. {{#each updateWheres}}
  53. .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}})))
  54. {{/each}}
  55. .addBatch()
  56. }
  57. }
  58. for (def row : params.removeRecords) {
  59. // 提取 removeRecords 全部删除的数据,构建删除条件,添加到 "批量执行(addBatch)" 的缓存中
  60. if ({{#each deleteWheres}}row._origin.{{{ paramField }}} != null{{#if @last}}{{else}} && {{/if}}{{/each}}) {
  61. delete
  62. {{#each deleteWheres}}
  63. .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}})))
  64. {{/each}}
  65. .addBatch()
  66. }
  67. }
  68. def i = 0 // 插入行计数
  69. def u = 0 // 更新行计数
  70. def d = 0 // 删除行计数
  71. def msg = ""
  72. // 构建提示语句
  73. if (insert.getBatchCount() > 0) {
  74. i = insert.execute()
  75. msg += ",插入${i}行"
  76. }
  77. if (update.getBatchCount() > 0) {
  78. u += update.execute()
  79. msg += ",更新${u}行"
  80. }
  81. if (delete.getBatchCount() > 0) {
  82. d += delete.execute()
  83. msg += ",删除${d}行"
  84. }
  85. def rowEffect = i + u + d
  86. if (rowEffect <= 0) {
  87. return ModelOps.newSuccess().setMsg("没有要更新的内容")
  88. }
  89. // 返回前端
  90. return Model.newSuccess([
  91. update : u,
  92. insert : i,
  93. delete : d,
  94. rowEffect: rowEffect
  95. ]).setMsg("保存成功" + msg)
  96. }
  97. }