/** * {{.moduleTitle}}管理-服务类 * @author {{.author}} * @since {{.since}} * @File : {{.moduleName}} */ package service import ( "gitlab.52pay.top/go/easygoadmin/app/dto" "gitlab.52pay.top/go/easygoadmin/app/model" "gitlab.52pay.top/go/easygoadmin/app/vo" "gitlab.52pay.top/go/easygoadmin/utils" "gitlab.52pay.top/go/easygoadmin/utils/gconv" "errors" "strings" "time" ) // 中间件管理服务 var {{.entityName}} = new({{.moduleName}}Service) type {{.moduleName}}Service struct{} func (s *{{.moduleName}}Service) GetList(req *dto.{{.entityName}}PageReq) ([]vo.{{.entityName}}InfoVo, int64, error) { // 初始化查询实例 query := utils.XormDb.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}}