package plat import ( "context" "dashoo.cn/micro/app/dao/plat" model "dashoo.cn/micro/app/model/plat" "dashoo.cn/micro/app/service" "dashoo.cn/opms_libary/myerrors" "dashoo.cn/opms_libary/request" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/gtime" "github.com/gogf/gf/util/gvalid" ) type questionnaireService struct { *service.ContextService userInfo request.UserInfo Dao *plat.PlatQuestionnaireDao } func NewQuestionnaireService(ctx context.Context) (svc *questionnaireService, err error) { svc = new(questionnaireService) if svc.ContextService, err = svc.Init(ctx); err != nil { return nil, err } svc.Dao = plat.NewPlatQuestionnaireDao(svc.Tenant) return svc, nil } func (s questionnaireService) GetList(req *model.SearchPlatQuestionnaireReq) (total int, PlatQuestionnaireList []*model.PlatQuestionnaireEx, err error) { Model := s.Dao.Where("1=1") if req.UnitName != "" { Model = Model.Where("unit_name LIKE ?", "%"+req.UnitName+"%") } if req.ObjPosition != "" { Model = Model.Where("obj_position LIKE ?", "%"+req.ObjPosition+"%") //Model = Model.Where("obj_position=?", req.ObjPosition) } if req.ObjName != "" { Model = Model.Where("obj_name LIKE ?", "%"+req.ObjName+"%") } if req.ObjPhone != "" { Model = Model.Where("obj_phone LIKE ?", "%"+req.ObjPhone+"%") } if req.ObjWechat != "" { Model = Model.Where("obj_wechat LIKE ?", "%"+req.ObjWechat+"%") } if req.CsnMatters != "" { Model = Model.Where("csn_matters LIKE ?", "%"+req.CsnMatters+"%") } if req.QstStatus != "" { Model = Model.Where("qst_status = ?", req.QstStatus) } if req.FollowUp != "" { Model = Model.Where("follow_up LIKE ?", "%"+req.FollowUp+"%") } if req.Remark != "" { Model = Model.Where("remark LIKE ?", "%"+req.Remark+"%") } total, err = Model.Count() if err != nil { g.Log().Error(err) err = myerrors.DbError("获取总行数失败。") return } err = Model.Page(req.GetPage()).Order("created_time DESC").Scan(&PlatQuestionnaireList) return } func (s questionnaireService) Create(ctx context.Context, req *model.AddPlatQuestionnaire) error { validErr := gvalid.CheckStruct(ctx, req, nil) if validErr != nil { return myerrors.TipsError(validErr.Current().Error()) } req.QstStatus = "10" req.CreatedBy = s.userInfo.Id req.CreatedName = s.userInfo.UserName req.CreatedTime = gtime.Now() res, err := s.Dao.Insert(req) if err != nil { return err } _, err = res.LastInsertId() return err } func (s questionnaireService) Update(ctx context.Context, req *model.AddPlatQuestionnaire) error { validErr := gvalid.CheckStruct(ctx, req, nil) if validErr != nil { return myerrors.TipsError(validErr.Current().Error()) } if req.Id == 0 { return nil } req.UpdatedBy = s.userInfo.Id req.UpdatedName = s.userInfo.UserName req.UpdatedTime = gtime.Now() _, err := s.Dao.Data(req).Where("id=?", req.Id).Update() if err != nil { return err } return err } func (s questionnaireService) Delete(ctx context.Context, req *model.IdsReq) error { validErr := gvalid.CheckStruct(ctx, req, nil) if validErr != nil { return myerrors.TipsError(validErr.Current().Error()) } if len(req.Id) == 0 { return nil } _, err := s.Dao.Data(g.Map{"deleted_time": gtime.Now()}).Where("id=?", req.Id).Update() if err != nil { return err } return err } func (s questionnaireService) GetEntityById(ctx context.Context, id int) (entity model.PlatQuestionnaireEx, err error) { if id == 0 { return entity, err } err = s.Dao.Where("Id = ?", id).Scan(&entity) if err != nil { return entity, err } return entity, err }