init
This commit is contained in:
7
templates/goxorm/config
Normal file
7
templates/goxorm/config
Normal file
@@ -0,0 +1,7 @@
|
||||
lang=go
|
||||
genJson=1
|
||||
prefix=sys_
|
||||
ignoreColumnsJSON=
|
||||
created=
|
||||
updated=
|
||||
deleted=
|
45
templates/goxorm/struct.go.tpl
Normal file
45
templates/goxorm/struct.go.tpl
Normal file
@@ -0,0 +1,45 @@
|
||||
package {{.Models}}
|
||||
|
||||
import "github.com/darkit/thinkweb/utils"
|
||||
|
||||
{{$ilen := len .Imports}}
|
||||
{{if gt $ilen 0}}
|
||||
import (
|
||||
"github.com/darkit/thinkweb/utils"
|
||||
{{range .Imports}}"{{.}}"{{end}}
|
||||
)
|
||||
{{end}}
|
||||
|
||||
{{range .Tables}}
|
||||
type {{Mapper .Name}} struct {
|
||||
{{$table := .}}
|
||||
{{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}} {{Type $col}} {{Tag $table $col}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
// 根据条件查询单条数据
|
||||
func (r *{{Mapper .Name}}) Get() (bool, error) {
|
||||
return db.GetDb().Get(r)
|
||||
}
|
||||
|
||||
// 插入数据
|
||||
func (r *{{Mapper .Name}}) Insert() (int64, error) {
|
||||
return db.GetDb().Insert(r)
|
||||
}
|
||||
|
||||
// 更新数据
|
||||
func (r *{{Mapper .Name}}) Update() (int64, error) {
|
||||
return db.GetDb().ID(r.Id).Update(r)
|
||||
}
|
||||
|
||||
// 删除
|
||||
func (r *{{Mapper .Name}}) Delete() (int64, error) {
|
||||
return db.GetDb().ID(r.Id).Delete(&{{Mapper .Name}}{})
|
||||
}
|
||||
|
||||
//批量删除
|
||||
func (r *{{Mapper .Name}}) BatchDelete(ids ...int64) (int64, error) {
|
||||
return db.GetDb().In("id", ids).Delete(&{{Mapper .Name}}{})
|
||||
}
|
||||
{{end}}
|
||||
|
207
templates/tmpl/controller.html
Normal file
207
templates/tmpl/controller.html
Normal file
@@ -0,0 +1,207 @@
|
||||
package controller
|
||||
|
||||
/**
|
||||
* {{.moduleTitle}}管理-控制器
|
||||
* @author ZStudio {{.author}}
|
||||
* @since {{.since}}
|
||||
* @File : {{.moduleName}}
|
||||
*/
|
||||
|
||||
import (
|
||||
"github.com/darkit/thinkweb/app/dto"
|
||||
"github.com/darkit/thinkweb/app/model"
|
||||
"github.com/darkit/thinkweb/app/service"
|
||||
"github.com/darkit/thinkweb/utils"
|
||||
"github.com/darkit/thinkweb/utils/common"
|
||||
"github.com/darkit/thinkweb/utils/gconv"
|
||||
"github.com/darkit/thinkweb/utils/response"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var {{.entityName}} = new({{.moduleName}}Ctl)
|
||||
|
||||
type {{.moduleName}}Ctl struct{}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) Index(ctx *gin.Context) {
|
||||
// 模板渲染
|
||||
response.BuildTpl(ctx, "{{.moduleName}}_index.html").WriteTpl()
|
||||
}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) List(ctx *gin.Context) {
|
||||
// 参数绑定
|
||||
var req *dto.{{.entityName}}PageReq
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 调用获取列表方法
|
||||
list, count, err := service.{{.entityName}}.GetList(req)
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 返回结果
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: 0,
|
||||
Data: list,
|
||||
Msg: "操作成功",
|
||||
Count: count,
|
||||
})
|
||||
}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) Edit(ctx *gin.Context) {
|
||||
id := gconv.Int(ctx.Query("id"))
|
||||
if id > 0 {
|
||||
// 编辑
|
||||
info := &model.{{.entityName}}{Id: id}
|
||||
has, err := info.Get()
|
||||
if !has || err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}
|
||||
// {{$val.columnTitle}}
|
||||
if info.{{$val.columnName2}} != "" {
|
||||
info.{{$val.columnName2}} = utils.GetImageUrl(info.{{$val.columnName2}})
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
// 渲染模板
|
||||
response.BuildTpl(ctx, "{{.moduleName}}_edit.html").WriteTpl(gin.H{
|
||||
"info": info,
|
||||
})
|
||||
} else {
|
||||
// 添加
|
||||
response.BuildTpl(ctx, "{{.moduleName}}_edit.html").WriteTpl()
|
||||
}
|
||||
}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) Add(ctx *gin.Context) {
|
||||
// 参数绑定
|
||||
var req *dto.{{.entityName}}AddReq
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 调用添加方法
|
||||
rows, err := service.{{.entityName}}.Add(req, utils.Uid(ctx))
|
||||
if err != nil || rows == 0 {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 返回结果
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: 0,
|
||||
Msg: "添加成功",
|
||||
})
|
||||
}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) Update(ctx *gin.Context) {
|
||||
// 参数绑定
|
||||
var req *dto.{{.entityName}}UpdateReq
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 调用更新方法
|
||||
rows, err := service.{{.entityName}}.Update(req, utils.Uid(ctx))
|
||||
if err != nil || rows == 0 {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 返回结果
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: 0,
|
||||
Msg: "更新成功",
|
||||
})
|
||||
}
|
||||
|
||||
func (c *{{.moduleName}}Ctl) Delete(ctx *gin.Context) {
|
||||
// 记录ID
|
||||
ids := ctx.Param("ids")
|
||||
if ids == "" {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: "记录ID不能为空",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 调用删除方法
|
||||
rows, err := service.{{.entityName}}.Delete(ids)
|
||||
if err != nil || rows == 0 {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 返回结果
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: 0,
|
||||
Msg: "删除成功",
|
||||
})
|
||||
}
|
||||
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnSwitch false}}
|
||||
func (c *{{$.moduleName}}Ctl) {{$val.columnName2}}(ctx *gin.Context) {
|
||||
// 参数绑定
|
||||
var req *dto.{{$.entityName}}{{$val.columnName2}}Req
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 调用设置状态方法
|
||||
rows, err := service.{{$.entityName}}.{{$val.columnName2}}(req, utils.Uid(ctx))
|
||||
if err != nil || rows == 0 {
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: -1,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
// 返回结果
|
||||
ctx.JSON(http.StatusOK, common.JsonResult{
|
||||
Code: 0,
|
||||
Msg: "设置成功",
|
||||
})
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
53
templates/tmpl/dto.html
Normal file
53
templates/tmpl/dto.html
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
|
||||
package dto
|
||||
|
||||
// {{.entityName}}PageReq 分页查询
|
||||
type {{.entityName}}PageReq struct {
|
||||
{{range $key, $val := .queryList}}
|
||||
{{if ne $val.columnValue ""}}
|
||||
{{$val.columnName2}} {{$val.columnType}} `form:"{{$val.columnName3}}"` // {{$val.columnComment}}
|
||||
{{else}}
|
||||
{{$val.columnName2}} {{$val.columnType}} `form:"{{$val.columnName3}}"` // {{$val.columnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
Page int `form:"page"` // 页码
|
||||
Limit int `form:"limit"` // 每页数
|
||||
}
|
||||
|
||||
// {{.entityName}}AddReq添加{{.entityName}}
|
||||
type {{.entityName}}AddReq struct {
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{else if ne $val.columnValue ""}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{else}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
// {{.entityName}}UpdateReq编辑{{.moduleTitle}}
|
||||
type {{.entityName}}UpdateReq struct {
|
||||
Id string `form:"id" binding:"required"`
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{else if ne $val.columnValue ""}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{else}}
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"` // {{$val.columnComment}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnSwitch false}}
|
||||
// 设置{{$val.columnTitle}}
|
||||
type {{$.entityName}}{{$val.columnName2}}Req struct {
|
||||
Id string `form:"id" binding:"required"`
|
||||
{{$val.columnName2}} string `form:"{{$val.columnName3}}" binding:"required"`
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
44
templates/tmpl/edit.html
Normal file
44
templates/tmpl/edit.html
Normal file
@@ -0,0 +1,44 @@
|
||||
{{.defineStart | safe}}
|
||||
<form class="layui-form model-form" action="">
|
||||
<input name="id" id="id" type="hidden" value="{{(printf "{{.info.Id}}")}}">
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if eq $val.columnImage true}}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{$val.columnTitle}}:</label>
|
||||
{{$val.columnWidget | safe}}
|
||||
</div>
|
||||
{{else if ne $val.columnText false}}
|
||||
{{if eq $val.dataType "text"}}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{$val.columnTitle}}:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="{{$val.columnName}}" id="{{$val.columnName}}" lay-verify="required" class="layui-textarea"></textarea>
|
||||
{{$val.columnWidget | safe}}
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="layui-form-item layui-form-text" style="width:665px;">
|
||||
<label class="layui-form-label">{{$val.columnTitle}}:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="{{$val.columnName}}" placeholder="请输入{{$val.columnTitle}}" class="layui-textarea">{{(printf "{{.info.%s}}" $val.columnName2)}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{else}}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{$val.columnTitle}}:</label>
|
||||
<div class="layui-input-block">
|
||||
{{if ne $val.columnValue ""}}
|
||||
{{$val.columnWidget | safe}}
|
||||
{{else if eq $val.dataType "int" }}
|
||||
<input name="{{$val.columnName}}" value="{{(printf "{{.info.%s}}" $val.columnName2)}}" lay-verify="required|number" autocomplete="off" placeholder="请输入{{$val.columnTitle}}" class="layui-input" type="text">
|
||||
{{else}}
|
||||
<input name="{{$val.columnName}}" value="{{(printf "{{.info.%s}}" $val.columnName2)}}" lay-verify="required" autocomplete="off" placeholder="请输入{{$val.columnTitle}}" class="layui-input" type="text">
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{.submitWidget | safe}}
|
||||
</form>
|
||||
{{.defineEnd | safe}}
|
35
templates/tmpl/index.html
Normal file
35
templates/tmpl/index.html
Normal file
@@ -0,0 +1,35 @@
|
||||
{{.defineStart | safe}}
|
||||
<!-- 功能操作区一 -->
|
||||
<form class="layui-form toolbar">
|
||||
<div class="layui-form-item">
|
||||
{{range $key, $val := .queryList}}
|
||||
{{if ne $val.columnValue ""}} <!-- {{$val.columnComment}} -->
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label w-auto">{{$val.columnTitle}}:</label>
|
||||
<div class="layui-input-inline">
|
||||
{{$val.columnWidget | safe}}
|
||||
</div>
|
||||
</div> {{else}} <!-- {{$val.columnComment}} -->
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label w-auto">{{$val.columnTitle}}:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="{{$val.columnName}}" placeholder="请输入{{$val.columnTitle}}" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div> {{end}} {{end}}
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: auto;">
|
||||
{{.funcList1 | safe}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!-- TABLE渲染区 -->
|
||||
<table class="layui-hide" id="tableList" lay-filter="tableList"></table>
|
||||
|
||||
<!-- 操作功能区二 -->
|
||||
<script type="text/html" id="toolBar">
|
||||
{{.funcList2 | safe}}
|
||||
</script>
|
||||
|
||||
{{.defineEnd | safe}}
|
80
templates/tmpl/js.html
Normal file
80
templates/tmpl/js.html
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
|
||||
/**
|
||||
* {{.moduleTitle}}管理
|
||||
* @author ZStudio {{.author}}
|
||||
* @since {{.since}}
|
||||
*/
|
||||
layui.use(['func'], function () {
|
||||
|
||||
//声明变量
|
||||
var func = layui.func
|
||||
, $ = layui.$;
|
||||
|
||||
if (A == 'index') {
|
||||
//【TABLE列数组】
|
||||
var cols = [
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
, {field: 'id', width: 80, title: 'ID', align: 'center', sort: true, fixed: 'left'}
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnSwitch false}}
|
||||
, {field: '{{$val.columnName3}}', width: 100, title: '{{$val.columnTitle}}', align: 'center', templet: function (d) {
|
||||
return '<input type="checkbox" name="{{$val.columnName3}}" value="'+d.id+'" lay-skin="switch" lay-text="{{$val.columnSwitchValue}}" lay-filter="{{$val.columnName3}}" checkedStart{{$val.columnName3}}checkedEnd>';
|
||||
}}
|
||||
{{else if ne $val.columnImage false}}
|
||||
, {field: '{{$val.columnName}}', width: 90, title: '{{$val.columnTitle}}', align: 'center', templet: function (d) {
|
||||
var {{$val.columnName}}Str = "";
|
||||
if (d.{{$val.columnName}}) {
|
||||
{{$val.columnName}}Str = '<a href="' + d.{{$val.columnName}} + '" target="_blank"><img src="' + d.{{$val.columnName}} + '" height="26" /></a>';
|
||||
}
|
||||
return {{$val.columnName}}Str;
|
||||
}
|
||||
}
|
||||
{{else if ne $val.columnValue ""}}
|
||||
, {field: '{{$val.columnName}}', width: 100, title: '{{$val.columnTitle}}', align: 'center', templet(d) {
|
||||
{{range $k, $v := $val.columnValueList}}
|
||||
{{if eq $k 1}}if (d.{{$val.columnName}} == 1) {
|
||||
// {{$v}}
|
||||
return '<span class="layui-btn layui-btn-normal layui-btn-xs">{{$v}}</span>';
|
||||
} {{else if eq $k 2}}else if (d.{{$val.columnName}} == 2) {
|
||||
// {{$v}}
|
||||
return '<span class="layui-btn layui-btn-danger layui-btn-xs">{{$v}}</span>';
|
||||
} {{else if eq $k 3}}else if (d.{{$val.columnName}} == 3) {
|
||||
// {{$v}}
|
||||
return '<span class="layui-btn layui-btn-warm layui-btn-xs">{{$v}}</span>';
|
||||
} {{else if eq $k 4}}else if (d.{{$val.columnName}} == 4) {
|
||||
// {{$v}}
|
||||
return '<span class="layui-btn layui-btn-primary layui-btn-xs">{{$v}}</span>';
|
||||
} {{else}}else {
|
||||
// {{$v}}
|
||||
return '<span class="layui-btn layui-btn-normal layui-btn-xs">{{$v}}</span>';
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
}
|
||||
{{else}}
|
||||
, {field: '{{$val.columnName}}', width: 100, title: '{{$val.columnTitle}}', align: 'center'}
|
||||
{{end}}
|
||||
{{end}}
|
||||
, {field: 'create_time', width: 180, title: '添加时间', align: 'center'}
|
||||
, {field: 'update_time', width: 180, title: '更新时间', align: 'center'}
|
||||
, {fixed: 'right', width: 150, title: '功能操作', align: 'center', toolbar: '#toolBar'}
|
||||
];
|
||||
|
||||
//【渲染TABLE】
|
||||
func.tableIns(cols, "tableList");
|
||||
|
||||
//【设置弹框】
|
||||
func.setWin("{{.moduleTitle}}", 750, 450);
|
||||
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnSwitch false}}
|
||||
//【设置{{$val.columnTitle}}】
|
||||
func.formSwitch('{{$val.columnName2}}', null, function (data, res) {
|
||||
console.log("开关回调成功");
|
||||
});
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
});
|
30
templates/tmpl/router.html
Normal file
30
templates/tmpl/router.html
Normal file
@@ -0,0 +1,30 @@
|
||||
package router
|
||||
/**
|
||||
* {{.moduleTitle}}-路由
|
||||
* @author ZStudio {{.author}}
|
||||
* @since {{.since}}
|
||||
* @File : {{.moduleName}}
|
||||
*/
|
||||
|
||||
import (
|
||||
"github.com/darkit/thinkweb/app/controller"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func Init{{.entityName}}(router *gin.Engine) {
|
||||
fmt.Println("{{.moduleTitle}}路由初始化")
|
||||
|
||||
/* {{.moduleTitle}} */
|
||||
{{.moduleName}} := router.Group("{{.moduleName}}")
|
||||
{
|
||||
{{.moduleName}}.GET("/index", controller.{{.entityName}}.Index)
|
||||
{{.moduleName}}.POST("/list", controller.{{.entityName}}.List)
|
||||
{{.moduleName}}.GET("/edit", controller.{{.entityName}}.Edit)
|
||||
{{.moduleName}}.POST("/add", controller.{{.entityName}}.Add)
|
||||
{{.moduleName}}.POST("/update", controller.{{.entityName}}.Update)
|
||||
{{.moduleName}}.POST("/delete/:ids", controller.{{.entityName}}.Delete)
|
||||
{{range $key, $val := .columnList}}{{if ne $val.columnSwitch false}}
|
||||
{{$.moduleName}}.POST("/{{$val.columnSwitchName}}", controller.{{$.entityName}}.{{$val.columnName2}}){{end}}{{end}}
|
||||
}
|
||||
}
|
151
templates/tmpl/service.html
Normal file
151
templates/tmpl/service.html
Normal file
@@ -0,0 +1,151 @@
|
||||
package service
|
||||
/**
|
||||
* {{.moduleTitle}}管理-服务类
|
||||
* @author ZStudio {{.author}}
|
||||
* @since {{.since}}
|
||||
* @File : {{.moduleName}}
|
||||
*/
|
||||
|
||||
import (
|
||||
"github.com/darkit/thinkweb/app/dto"
|
||||
"github.com/darkit/thinkweb/app/model"
|
||||
"github.com/darkit/thinkweb/app/vo"
|
||||
"github.com/darkit/thinkweb/utils"
|
||||
"github.com/darkit/thinkweb/utils/gconv"
|
||||
"errors"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// {{.entityName}}中间件管理服务
|
||||
var {{.entityName}} = new({{.moduleName}}Service)
|
||||
|
||||
type {{.moduleName}}Service struct{}
|
||||
|
||||
func (s *{{.moduleName}}Service) GetList(req *dto.{{.entityName}}PageReq) ([]vo.{{.entityName}}InfoVo, int64, error) {
|
||||
// 初始化查询实例
|
||||
query := db.GetDb().Where("mark=1")
|
||||
if req != nil {
|
||||
{{range $key, $val := .queryList}}
|
||||
// {{$val.columnComment}}
|
||||
{{if ne $val.columnValue ""}}
|
||||
if req.{{$val.columnName2}} > 0 {
|
||||
query = query.Where("{{$val.columnName}} = ?", req.{{$val.columnName2}})
|
||||
}
|
||||
{{else}}
|
||||
if req.{{$val.columnName2}} != "" {
|
||||
query = query.Where("{{$val.columnName}} like ?", "%"+req.{{$val.columnName2}}+"%")
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
||||
}
|
||||
// 排序
|
||||
query = query.Asc("id")
|
||||
// 分页设置
|
||||
offset := (req.Page - 1) * req.Limit
|
||||
query = query.Limit(req.Limit, offset)
|
||||
// 查询列表
|
||||
list := make([]model.{{.entityName}}, 0)
|
||||
count, err := query.FindAndCount(&list)
|
||||
|
||||
// 数据处理
|
||||
var result []vo.{{.entityName}}InfoVo
|
||||
for _, v := range list {
|
||||
item := vo.{{.entityName}}InfoVo{}
|
||||
item.{{.entityName}} = v
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}
|
||||
// {{$val.columnTitle}}
|
||||
if v.{{$val.columnName2}} != "" {
|
||||
item.{{$val.columnName2}} = utils.GetImageUrl(v.{{$val.columnName2}})
|
||||
}{{end}}{{end}}
|
||||
result = append(result, item)
|
||||
}
|
||||
|
||||
// 返回结果
|
||||
return result, count, err
|
||||
}
|
||||
|
||||
func (s *{{.moduleName}}Service) Add(req *dto.{{.entityName}}AddReq, userId int) (int64, error) {
|
||||
// 实例化对象
|
||||
var entity model.{{.entityName}}
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}// {{$val.columnTitle}}处理
|
||||
if req.{{$val.columnName2}} != "" {
|
||||
{{$val.columnName}}, err := utils.SaveImage(req.{{$val.columnName2}}, "{{$.moduleName}}")
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
entity.{{$val.columnName2}} = {{$val.columnName}}
|
||||
}{{else if eq $val.columnType "int"}}
|
||||
entity.{{$val.columnName2}} = gconv.Int(req.{{$val.columnName2}})
|
||||
{{else}}entity.{{$val.columnName2}} = req.{{$val.columnName2}}{{end}}{{end}}
|
||||
entity.CreateUser = userId
|
||||
entity.CreateTime = time.Now().Unix()
|
||||
entity.Mark = 1
|
||||
// 插入数据
|
||||
return entity.Insert()
|
||||
}
|
||||
|
||||
func (s *{{.moduleName}}Service) Update(req *dto.{{.entityName}}UpdateReq, userId int) (int64, error) {
|
||||
// 查询记录
|
||||
entity := &model.{{.entityName}}{Id: gconv.Int(req.Id)}
|
||||
has, err := entity.Get()
|
||||
if err != nil || !has {
|
||||
return 0, errors.New("记录不存在")
|
||||
}
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnImage false}}// {{$val.columnTitle}}处理
|
||||
if req.{{$val.columnName2}} != "" {
|
||||
{{$val.columnName}}, err := utils.SaveImage(req.{{$val.columnName2}}, "{{$.moduleName}}")
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
entity.{{$val.columnName2}} = {{$val.columnName}}
|
||||
}{{else if eq $val.columnType "int"}}
|
||||
entity.{{$val.columnName2}} = gconv.Int(req.{{$val.columnName2}})
|
||||
{{else}}entity.{{$val.columnName2}} = req.{{$val.columnName2}}{{end}}{{end}}
|
||||
entity.UpdateUser = userId
|
||||
entity.UpdateTime = time.Now().Unix()
|
||||
// 更新记录
|
||||
return entity.Update()
|
||||
}
|
||||
|
||||
// 删除
|
||||
func (s *{{.moduleName}}Service) Delete(ids string) (int64, error) {
|
||||
// 记录ID
|
||||
idsArr := strings.Split(ids, ",")
|
||||
if len(idsArr) == 1 {
|
||||
// 单个删除
|
||||
entity := &model.{{.entityName}}{Id: gconv.Int(ids)}
|
||||
rows, err := entity.Delete()
|
||||
if err != nil || rows == 0 {
|
||||
return 0, errors.New("删除失败")
|
||||
}
|
||||
return rows, nil
|
||||
} else {
|
||||
// 批量删除
|
||||
return 0, nil
|
||||
}
|
||||
}
|
||||
|
||||
{{range $key, $val := .columnList}}
|
||||
{{if ne $val.columnSwitch false}}
|
||||
func (s *{{$.moduleName}}Service) {{$val.columnName2}}(req *dto.{{$.entityName}}{{$val.columnName2}}Req, userId int) (int64, error) {
|
||||
// 查询记录是否存在
|
||||
info := &model.{{$.entityName}}{Id: gconv.Int(req.Id)}
|
||||
has, err := info.Get()
|
||||
if err != nil || !has {
|
||||
return 0, errors.New("记录不存在")
|
||||
}
|
||||
|
||||
// 设置状态
|
||||
entity := &model.{{$.entityName}}{}
|
||||
entity.Id = info.Id
|
||||
entity.{{$val.columnName2}} = gconv.Int(req.{{$val.columnName2}})
|
||||
entity.UpdateUser = userId
|
||||
entity.UpdateTime = time.Now().Unix()
|
||||
return entity.Update()
|
||||
}
|
||||
{{end}}
|
||||
{{end}}
|
16
templates/tmpl/vo.html
Normal file
16
templates/tmpl/vo.html
Normal file
@@ -0,0 +1,16 @@
|
||||
package vo
|
||||
/**
|
||||
* {{.moduleTitle}}Vo
|
||||
* @author ZStudio {{.author}}
|
||||
* @since {{.since}}
|
||||
* @File : {{.moduleName}}
|
||||
*/
|
||||
|
||||
import "github.com/darkit/thinkweb/app/model"
|
||||
|
||||
// {{.entityName}}InfoVo {{.moduleTitle}}信息Vo
|
||||
type {{.entityName}}InfoVo struct {
|
||||
model.{{.entityName}}
|
||||
{{range $key, $val := .columnList}}{{if ne $val.columnValue ""}}
|
||||
{{$val.columnName2}}Name {{$val.columnType}} `json:"{{$val.columnName3}}Name"` // {{$val.columnTitle}}名称{{end}}{{end}}
|
||||
}
|
Reference in New Issue
Block a user