| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package logic
- import (
- "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"
- "gorm.io/gen/field"
- )
- type ActInfoLogic struct {
- SvcCtx *svc.ServiceContext
- }
- // NewActInfoLogic
- // @Description: 控制点动作
- // @return *ActInfoLogic
- func NewActInfoLogic() *ActInfoLogic {
- return &ActInfoLogic{
- SvcCtx: svc.SvcCtx,
- }
- }
- // AddActInfo
- // @Description: 添加
- // @receiver l
- // @param in
- // @return error
- func (l *ActInfoLogic) AddActInfo(in *model.DevCpaction) error {
- in.ID = 0
- err := l.SvcCtx.DevCpaction.Create(in)
- return err
- }
- // DelActInfo
- // @Description: 删除
- // @receiver l
- // @param actId 动作id
- // @return error
- func (l *ActInfoLogic) DelActInfo(actId int64) error {
- do := l.SvcCtx.DevCpaction
- _linkRelationAction := l.SvcCtx.LinkRelationAction
- //删除关联的联动信息
- _linkRelationAction.Where(_linkRelationAction.Actid.Eq(actId)).Delete()
- _, err := do.Where(do.Actid.Eq(actId)).Delete()
- return err
- }
- // ModifyActInfo
- // @Description: 修改
- // @receiver l
- // @param in
- // @param fields 更新字段,当field为null时,更新in的全部字段
- // @return error
- func (l *ActInfoLogic) ModifyActInfo(in *model.DevCpaction, fields ...string) error {
- do := l.SvcCtx.DevCpaction
- var err error
- _do := do.Omit(do.ID, do.Cpid).Where(do.Actid.Eq(in.Actid))
- if fields == nil {
- m := gconv.Map(in)
- _, err = _do.Updates(m)
- return err
- }
- var fieldList []field.Expr
- for _, v := range fields {
- _f, ok := do.GetFieldByName(v)
- if ok {
- fieldList = append(fieldList, _f)
- }
- }
- _, err = _do.Select(fieldList...).Updates(in)
- return err
- }
- func (l *ActInfoLogic) getActInfoCond(req *dto.GetActInfoReq) *dao.Condition {
- _dao := l.SvcCtx.DevCpaction
- cond := NewCondition(&req.LimitPage)
- if req.ActId > 0 {
- cond.Where[_dao.Actid.String()] = req.ActId
- }
- if req.CpId > 0 {
- cond.Where[_dao.Cpid.String()] = req.CpId
- }
- return cond
- }
- // GetActInfo
- // @Description: 分页查询
- // @receiver l
- // @param where 查询条件
- // @param page
- // @param limit
- // @return []*model.DevDevinfo
- // @return error
- func (l *ActInfoLogic) GetActInfo(req *dto.GetActInfoReq) (*dto.GetActInfoResp, error) {
- _dao := l.SvcCtx.DevCpaction
- cond := l.getActInfoCond(req)
- resp := &dto.GetActInfoResp{}
- err := _dao.Base.Find(cond, &resp.List)
- if err != nil {
- return nil, err
- }
- err = _dao.Base.Count(cond, &resp.Total)
- return resp, err
- }
- // GetActInfoCount
- // @Description:查询满足条件的总数
- // @receiver l
- // @param where 查询条件
- // @return int64
- // @return error
- func (l *ActInfoLogic) GetActInfoCount(req *dto.GetActInfoReq) (int64, error) {
- cond := l.getActInfoCond(req)
- var count int64
- err := l.SvcCtx.DevCpaction.Base.Count(cond, &count)
- if err != nil {
- return 0, err
- }
- return count, err
- }
|