|
@@ -0,0 +1,93 @@
|
|
|
|
+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)
|
|
|
|
+ }
|
|
|
|
+}
|