package logic import ( "errors" "fmt" "git.rtzhtech.cn/iss/public-lib/dao" "git.rtzhtech.cn/iss/public-lib/dto" "git.rtzhtech.cn/iss/public-lib/model" "git.rtzhtech.cn/iss/public-lib/svc" "github.com/gogf/gf/v2/util/gconv" ) // NewAppInfoLogic // @函数名:NewAppInfoLogic // @函数功能描述: 初始化appinfo // @返回值:AppInfo // func NewAppInfoLogic() AppInfo { return AppInfo{ SvcCtx: svc.SvcCtx, } } type AppInfo struct { SvcCtx *svc.ServiceContext } // SaveAppInfo // @函数名:SaveAppInfo // @函数功能描述: 保存appinfo // @对象名:c // @参数定义:req // @返回值:error // func (c *AppInfo) SaveAppInfo(req *model.SysApp) error { maps := gconv.Map(req) return c.SvcCtx.SysApp.Base.Replace(maps) } // SaveAppInfoMap // @函数名:SaveAppInfoMap // @函数功能描述: 用map类型保存appinfo // @对象名:c // @参数定义:maps // @返回值:error // func (c *AppInfo) SaveAppInfoMap(maps map[string]interface{}) error { if maps == nil || len(maps) == 0 { return errors.New("参数为空") } return c.SvcCtx.SysApp.Base.Replace(maps) } // DelAppInfo // @函数名:DelAppInfo // @函数功能描述: 删除appInfo // @对象名:c // @参数定义:id // @返回值:error // func (c *AppInfo) DelAppInfo(id int32) error { md := c.SvcCtx.SysApp _, err := md.Where(md.ID.Eq(id)).Delete() return err } // GetAppInfo // @函数名:GetAppInfo // @函数功能描述: 获取appInfo // @对象名:c // @参数定义:req // @返回值:*dto.GetAppInfoResponse // @返回值:error // func (c *AppInfo) GetAppInfo(req *dto.GetAppInfoRequest) (*dto.GetAppInfoResponse, error) { var ( resp = new(dto.GetAppInfoResponse) ) cond := new(dao.Condition) where := map[string]any{} if req.AppName != "" { UserNameLikeStr := fmt.Sprintf("%s like ?", c.SvcCtx.SysApp.Appname.String()) where[UserNameLikeStr] = "%" + req.AppName + "%" } if req.AppId != 0 { where[c.SvcCtx.SysApp.Appid.String()] = req.AppId } cond.Where = where var num int64 c.SvcCtx.SysApp.Base.Count(cond, &num) if req.Page < 1 { req.Page = 1 } if req.Limit < 1 { req.Limit = 20 } cond.Limit = req.Limit cond.Offset = (req.Page - 1) * req.Limit cond.OrderBy = "id desc" err := c.SvcCtx.SysApp.Base.Find(cond, &resp.List) if err != nil { return resp, err } resp.Total = num return resp, nil }