208 lines
6.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ==========================================================================
// GFast自动生成logic操作代码。
// 生成日期2025-08-11 16:49:09
// 生成路径: internal/app/businesses/logic/species_imgs.go
// 生成人gfast
// desc:
// company:云南奇讯科技有限公司
// ==========================================================================
package logic
import (
"context"
"errors"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
"github.com/tiger1103/gfast/v3/internal/app/businesses/dao"
"github.com/tiger1103/gfast/v3/internal/app/businesses/model"
"github.com/tiger1103/gfast/v3/internal/app/businesses/model/do"
"github.com/tiger1103/gfast/v3/internal/app/businesses/service"
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
"github.com/tiger1103/gfast/v3/library/liberr"
)
func init() {
service.RegisterSpeciesImgs(NewISpeciesImgs())
}
func NewISpeciesImgs() service.ISpeciesImgs {
return &sSpeciesImgs{}
}
type sSpeciesImgs struct{}
func (s *sSpeciesImgs) List(ctx context.Context, req *model.SpeciesImgsSearchReq) (listRes *model.SpeciesImgsSearchRes, err error) {
listRes = new(model.SpeciesImgsSearchRes)
err = g.Try(ctx, func(ctx context.Context) {
m := dao.SpeciesImgs.Ctx(ctx).WithAll()
if req.Id != "" {
m = m.Where(dao.SpeciesImgs.Columns().Id+" = ?", req.Id)
}
if req.SpeciesCode != "" {
m = m.Where(dao.SpeciesImgs.Columns().SpeciesCode+" like ?", "%"+req.SpeciesCode+"%")
}
if req.ImgType != "" {
m = m.Where(dao.SpeciesImgs.Columns().ImgType+" like ?", "%"+req.ImgType+"%")
}
if req.ImgSource != "" {
m = m.Where(dao.SpeciesImgs.Columns().ImgSource+" like ?", "%"+req.ImgSource+"%")
}
if req.CreateUser != "" {
m = m.Where(dao.SpeciesImgs.Columns().CreateUser+" = ?", gconv.Int(req.CreateUser))
}
if req.CreateDate != nil {
start := req.CreateDate[0]
end := req.CreateDate[1]
if start != nil && end != nil {
m = m.Where(
dao.SpeciesImgs.Columns().CreateDate+" >= ? AND "+
dao.SpeciesImgs.Columns().CreateDate+" <= ?",
start,
end,
)
}
}
if req.AuditStatus != "" {
m = m.Where(dao.SpeciesImgs.Columns().AuditStatus+" = ?", gconv.Int(req.AuditStatus))
}
listRes.Total, err = m.Count()
liberr.ErrIsNil(ctx, err, "获取总行数失败")
if req.PageNum == 0 {
req.PageNum = 1
}
listRes.CurrentPage = req.PageNum
if req.PageSize == 0 {
req.PageSize = consts.PageSize
}
order := "id asc"
if req.OrderBy != "" {
order = req.OrderBy
}
var res []*model.SpeciesImgsListRes
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
liberr.ErrIsNil(ctx, err, "获取数据失败")
listRes.List = make([]*model.SpeciesImgsListRes, len(res))
for k, v := range res {
listRes.List[k] = &model.SpeciesImgsListRes{
Id: v.Id,
SpeciesCode: v.SpeciesCode,
Imgs: v.Imgs,
ImgType: v.ImgType,
ImgSource: v.ImgSource,
CreateUser: v.CreateUser,
CreateDate: v.CreateDate,
AuditUser: v.AuditUser,
AuditDate: v.AuditDate,
AuditStatus: v.AuditStatus,
AuditView: v.AuditView,
Remark: v.Remark,
Version: v.Version,
CreatedAt: v.CreatedAt,
}
}
})
return
}
func (s *sSpeciesImgs) GetByInt(ctx context.Context, int int) (res *model.SpeciesImgsInfoRes, err error) {
err = g.Try(ctx, func(ctx context.Context) {
err = dao.SpeciesImgs.Ctx(ctx).WithAll().Where(dao.SpeciesImgs.Columns().Id, int).Scan(&res)
liberr.ErrIsNil(ctx, err, "获取信息失败")
})
return
}
func (s *sSpeciesImgs) Add(ctx context.Context, req *model.SpeciesImgsAddReq) (err error) {
err = g.Try(ctx, func(ctx context.Context) {
speciesNameCount, err := dao.SpeciesName.Ctx(ctx).Where(dao.SpeciesName.Columns().SpeciesCode+" = ?", req.SpeciesCode).Count()
if err != nil {
liberr.ErrIsNil(ctx, err, "获取物种编码失败")
return
}
if speciesNameCount == 0 {
liberr.ErrIsNil(ctx, errors.New("物种编码不存在"), "物种编码不存在")
return
}
//查重
count, err := dao.SpeciesImgs.Ctx(ctx).Where(dao.SpeciesImgs.Columns().SpeciesCode+" = ?", req.SpeciesCode).Count()
if err != nil {
liberr.ErrIsNil(ctx, err, "获取物种编码失败")
return
}
if count > 0 {
liberr.ErrIsNil(ctx, errors.New("请勿重复添加"), "请勿重复添加")
return
}
_, err = dao.SpeciesImgs.Ctx(ctx).Insert(do.SpeciesImgs{
SpeciesCode: req.SpeciesCode,
Imgs: req.Imgs,
ImgType: req.ImgType,
ImgSource: req.ImgSource,
CreateUser: req.CreateUser,
CreateDate: req.CreateDate,
//AuditUser: req.AuditUser,
//AuditDate: req.AuditDate,
AuditStatus: req.AuditStatus,
//AuditView: req.AuditView,
Remark: req.Remark,
//Version: req.Version,
})
liberr.ErrIsNil(ctx, err, "添加失败")
})
return
}
func (s *sSpeciesImgs) Edit(ctx context.Context, req *model.SpeciesImgsEditReq) (err error) {
err = g.Try(ctx, func(ctx context.Context) {
speciesNameCount, err := dao.SpeciesName.Ctx(ctx).Where(dao.SpeciesName.Columns().SpeciesCode+" = ?", req.SpeciesCode).Count()
if err != nil {
liberr.ErrIsNil(ctx, err, "物种编码不存在")
return
}
if speciesNameCount == 0 {
liberr.ErrIsNil(ctx, errors.New("物种编码不存在"), "物种编码不存在")
return
}
count, err := dao.SpeciesImgs.Ctx(ctx).
Where(dao.SpeciesImgs.Columns().SpeciesCode+" = ?", req.SpeciesCode).
WhereNot(dao.SpeciesImgs.Columns().Id, req.Id). // 排除当前记录
Count()
if err != nil {
liberr.ErrIsNil(ctx, err, "获取物种编码失败")
return
}
if count > 0 {
// 使用非nil错误触发错误处理
liberr.ErrIsNil(ctx, errors.New("物种编码已存在"), "请勿重复添加")
return
}
_, err = dao.SpeciesImgs.Ctx(ctx).WherePri(req.Id).Update(do.SpeciesImgs{
SpeciesCode: req.SpeciesCode,
Imgs: req.Imgs,
ImgType: req.ImgType,
ImgSource: req.ImgSource,
CreateUser: req.CreateUser,
CreateDate: req.CreateDate,
//AuditUser: req.AuditUser,
//AuditDate: req.AuditDate,
AuditStatus: req.AuditStatus,
//AuditView: req.AuditView,
Remark: req.Remark,
Version: req.Version,
})
liberr.ErrIsNil(ctx, err, "修改失败")
})
return
}
func (s *sSpeciesImgs) Delete(ctx context.Context, ints []int) (err error) {
err = g.Try(ctx, func(ctx context.Context) {
_, err = dao.SpeciesImgs.Ctx(ctx).Delete(dao.SpeciesImgs.Columns().Id+" in (?)", ints)
liberr.ErrIsNil(ctx, err, "删除失败")
})
return
}