| 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
 
- }
 
 
  |