groovy_en.ftl 5.2 KB

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