123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package services
- import (
- "ERP_storage/dto"
- db "ERP_storage/initialize"
- "ERP_storage/logs"
- models "ERP_storage/models/ContractReview"
- "errors"
- "gogs.baozhida.cn/zoie/ERP_libs/lib"
- "gorm.io/gorm"
- )
- type ServiceItem struct {
- }
- func (e *ServiceItem) GetPage(c *dto.ServiceItemPageReq) (list []models.ServiceItem, cnt int64) {
- var err error
- err = db.DB.Model(&models.ServiceItem{}).
- Scopes(
- dto.MakeCondition(c.GetNeedSearch()),
- dto.Paginate(c.GetPageSize(), c.GetPageIndex()),
- dto.WithNormalState(),
- ).
- Preload("ServiceType").
- Find(&list).Limit(-1).Offset(-1).
- Count(&cnt).Error
- if err != nil {
- logs.Error("db error: %s ", err)
- return
- }
- return
- }
- func (e *ServiceItem) Get(Id int) (r models.ServiceItem, err error) {
- err = db.DB.Scopes(dto.WithNormalState()).First(&r, Id).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return
- }
- return
- }
- // 添加
- func (e *ServiceItem) Insert(c *dto.ServiceItemInsertReq) (id int, err error) {
- var data models.ServiceItem
- err = db.DB.Scopes(dto.WithNormalState()).Where("t_name = ?", c.T_name).First(&data).Error
- if err != nil {
- // 没有则创建
- if errors.Is(err, gorm.ErrRecordNotFound) {
- c.Generate(&data)
- err = db.DB.Create(&data).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return
- }
- id = data.Id
- return
- }
- logs.Error("db error: %s", err)
- return
- }
- id = data.Id
- return
- }
- // 修改
- func (e *ServiceItem) Update(c *dto.ServiceItemUpdateReq) error {
- var serviceItem = models.ServiceItem{}
- err := db.DB.Scopes(dto.WithNormalState()).First(&serviceItem, c.GetId()).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return err
- }
- c.Generate(&serviceItem)
- err = db.DB.Save(&serviceItem).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return err
- }
- return nil
- }
- // 删除
- func (e *ServiceItem) Delete(c *dto.ServiceItemDeleteReq) error {
- var serviceItem = models.ServiceItem{}
- err := db.DB.Scopes(dto.WithNormalState()).First(&serviceItem, c.GetId()).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return dto.GetFailedErr
- }
- var ContractReviewServiceItemCount int64
- err = db.DB.Model(&models.ContractReviewServiceItem{}).
- Scopes(dto.WithNormalState()).
- Where("t_service_item_id = ?", serviceItem.Id).
- Count(&ContractReviewServiceItemCount).Error
- if err != nil {
- logs.Error("db error: %s", err)
- return dto.GetFailedErr
- }
- if ContractReviewServiceItemCount > 0 {
- return errors.New("存在已关联的合同评审,无法删除!")
- }
- serviceItem.T_State = 0
- err = db.DB.Save(&serviceItem).Error
- if err != nil {
- logs.Error(lib.FuncName(), err)
- }
- return dto.DeleteFailedErr
- }
|