package {{{ package }}} import com.yvan.core.DbConv import com.yvan.data.jdbc.DaoFactory import com.yvan.model.YvanExt import com.yvan.model.response.Model import com.yvan.model.response.ModelOps import groovy.util.logging.Slf4j import static com.galaxis.wms.query.{{{ qClass }}}.{{{ qClassTable }}} @Slf4j class {{{ groovyClass }}} { static def queryDsl = DaoFactory.getQueryDSL() static def mybatis = DaoFactory.getMyBatis({{{ groovyClass }}}.class) {{#if pagination}} static def queryByPage(Map params) { def list = mybatis.queryByPage("queryByPage", YvanExt.getQueryByPage(), params) return Model.newSuccess(list) } {{else}} static def query(Map params) { def list = mybatis.queryByPage("query", YvanExt.getQueryByPage(), params) return Model.newSuccess(list) } {{/if}} static def deleteItem(params) { def d = queryDsl.delete({{{ qClassTable }}}) {{#each deleteWheres}} .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(params._origin.{{{ paramField }}}))) {{/each}} .execute() return ModelOps.newSuccess(d) } static def saveItems(params) { // 获取 queryDsl 针对数据库表的 insert/update/delete 的操作对象 def insert = queryDsl.insert({{{ qClassTable }}}) def update = queryDsl.update({{{ qClassTable }}}) def delete = queryDsl.delete({{{ qClassTable }}}) for (def row : params.newRows) { // 提取 newRows 全部新加的数据,构建insert的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中 insert {{#each insertColumns}} .setx({{{ ../qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}}) {{/each}} .addBatch() } for (def row : params.modifyRows) { // 提取 modifyRows 全部修改的数据,构建update的queryDsl语句,并添加到 "批量执行(addBatch)" 的缓存中 if ({{#each updateWheres}}row._origin.{{{ paramField }}} != null{{#if @last}}{{else}} && {{/if}}{{/each}}) { update {{#each updateColumns}} .setx({{{ ../qClassTable }}}.{{{ qClassField }}}, row.{{{ paramField }}}) {{/each}} {{#each updateWheres}} .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))) {{/each}} .addBatch() } } for (def row : params.removeRecords) { // 提取 removeRecords 全部删除的数据,构建删除条件,添加到 "批量执行(addBatch)" 的缓存中 if ({{#each deleteWheres}}row._origin.{{{ paramField }}} != null{{#if @last}}{{else}} && {{/if}}{{/each}}) { delete {{#each deleteWheres}} .where({{{ ../qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))) {{/each}} .addBatch() } } def i = 0 // 插入行计数 def u = 0 // 更新行计数 def d = 0 // 删除行计数 def msg = "" // 构建提示语句 if (insert.getBatchCount() > 0) { i = insert.execute() msg += ",插入${i}行" } if (update.getBatchCount() > 0) { u += update.execute() msg += ",更新${u}行" } if (delete.getBatchCount() > 0) { d += delete.execute() msg += ",删除${d}行" } def rowEffect = i + u + d if (rowEffect <= 0) { return ModelOps.newSuccess().setMsg("没有要更新的内容") } // 返回前端 return Model.newSuccess([ update : u, insert : i, delete : d, rowEffect: rowEffect ]).setMsg("保存成功" + msg) } }