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.yvan.studio.model.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) { queryDsl.delete(basDict) {{#each deleteWheres}}.where({{{ qClassTable }}}.{{{ qClassField }}}.eq(DbConv.{{{ dbConvMethod }}}(row._origin.{{{ paramField }}}))){{/each}} .execute() return ModelOps.newSuccess() } 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 (row._origin.asn_in_id != null) { 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 (row._origin.asn_in_id != null) { 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) } }