groovy.ftl 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package ${packagePath}
  2. import com.yvan.core.DbConv
  3. import com.yvan.data.jdbc.DaoFactory
  4. import com.yvan.model.response.Model
  5. import com.yvan.model.response.ModelOps
  6. import org.slf4j.LoggerFactory
  7. import static com.galaxis.wms.query.Q${camelName1(tableName)}.${camelName(tableName)}
  8. class ${moduleName} {
  9. static def log = LoggerFactory.getLogger(${moduleName}.class)
  10. static def queryDsl = DaoFactory.getQueryDSL()
  11. static def mybatis = DaoFactory.getMyBatis(${moduleName}.class)
  12. static def query(params) {
  13. <#if pagination>
  14. def list = mybatis.queryByPage("query", YvanExt.getQueryByPage(), params)
  15. <#else>
  16. def list = mybatis.queryMany("query", params)
  17. </#if>
  18. return Model.newSuccess(list)
  19. }
  20. static def saveItems(params) {
  21. long rowEffect = 0
  22. def primaryKey = DbConv.asString(params.primaryKey)
  23. // 获取 queryDsl 针对某张表的 insert/update/remove 的操作对象
  24. def insert = queryDsl.insert(${camelName(tableName)}) // insert 操作对象
  25. def update = queryDsl.update(${camelName(tableName)}) // update 操作对象
  26. def remove = queryDsl.delete(${camelName(tableName)}) // remove 操作对象
  27. def i = 0 // 插入行计数11
  28. def u = 0 // 更新行计数
  29. def d = 0 // 删除行计数
  30. def msg = "" // 异常提示文本
  31. for (def row : params.removeRecords) {
  32. // 提取 removeRecords 全部删除的数据
  33. if (row._origin[primaryKey] != null) {
  34. // 构建删除条件,添加到 "批量执行(addBatch)" 的缓存中
  35. remove.where(
  36. ${camelName(tableName)}.${camelName(primaryKey)}.eq(DbConv.asString(row._origin[primaryKey]))
  37. ).addBatch()
  38. d++ // 计数
  39. }
  40. }
  41. for (def row : params.newRows) {
  42. // 提取 newRows 全部新加的数据
  43. // 构建insert的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  44. insert
  45. <#if columnList??>
  46. <#list columnList as column>
  47. <#switch column.dataType>
  48. <#case 1>
  49. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
  50. <#break>
  51. <#case 2>
  52. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asInteger(row.${column.columnName}) as Integer)
  53. <#break>
  54. <#case 3>
  55. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asLong(row.${column.columnName}) as Long)
  56. <#break>
  57. <#case 4>
  58. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asDate(row.${column.columnName}) as Date)
  59. <#break>
  60. <#default>
  61. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
  62. </#switch>
  63. </#list>
  64. </#if>
  65. .addBatch()
  66. i++ // 计数
  67. }
  68. for (def row : params.modifyRows) {
  69. // 提取 modifyRows 全部修改的数据
  70. // 构建update的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中
  71. if (row._origin.dict_value != null) {
  72. update
  73. <#if columnList??>
  74. <#list columnList as column>
  75. <#switch column.dataType>
  76. <#case 1>
  77. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
  78. <#break>
  79. <#case 2>
  80. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asInteger(row.${column.columnName}) as Integer)
  81. <#break>
  82. <#case 3>
  83. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asLong(row.${column.columnName}) as Long)
  84. <#break>
  85. <#case 4>
  86. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asDate(row.${column.columnName}) as Date)
  87. <#break>
  88. <#default>
  89. .set(${camelName(tableName)}.${camelName(column.columnName)}, DbConv.asString(row.${column.columnName}))
  90. </#switch>
  91. </#list>
  92. </#if>
  93. .where(
  94. // row._origin.xxx 就是修改前 xxx 属性的值
  95. ${camelName(tableName)}.${camelName(primaryKey)}.eq(DbConv.asString(row._origin[primaryKey]))
  96. ).addBatch()
  97. u++ // 计数
  98. }
  99. }
  100. // 构建提示语句
  101. if (i > 0) {
  102. rowEffect += insert.execute()
  103. msg += ",插入" + i + "行"
  104. }
  105. if (u > 0) {
  106. rowEffect += update.execute()
  107. msg += ",更新" + u + "行"
  108. }
  109. if (d > 0) {
  110. rowEffect += remove.execute()
  111. msg += ",删除" + d + "行"
  112. }
  113. if (rowEffect <= 0) {
  114. return ModelOps.newSuccess().setMsg("没有要更新的内容")
  115. }
  116. // 返回前端
  117. return Model.newSuccess([
  118. update : u,
  119. insert : i,
  120. delete : d,
  121. rowEffect: rowEffect
  122. ]).setMsg("保存成功" + msg)
  123. }
  124. }