zhangqian
2023-08-18 1fc5652567b9668bde0c4f174bc9b2458de751eb
销售明细修改产品
4个文件已添加
9个文件已修改
621 ■■■■ 已修改文件
api/v1/serviceContractStatus.go 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/salesDetailsProduct.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/serviceContractStatus.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/product.go 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/request/salesDetailsProduct.go 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/request/serviceContractStatus.go 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/salesDetails.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/salesDetailsProduct.go 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/serviceContractStatus.go 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/serviceContractStatus.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/dataServer.go 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/salesDetails.go 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/serviceContractStatus.go 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/serviceContractStatus.go
@@ -1,12 +1,11 @@
package v1
import (
    "aps_crm/model"
    "aps_crm/model/request"
    "aps_crm/model/response"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "aps_crm/service"
    "github.com/gin-gonic/gin"
    "strconv"
)
@@ -14,13 +13,12 @@
type ServiceContractStatusApi struct{}
// Add
//
//    @Tags        ServiceContractStatus
//    @Summary    添加服务合同状态
//    @Produce    application/json
//    @Param        object    body        request.AddServiceContractStatus    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/serviceContractStatus/add [post]
// @Tags    合同状态
// @Summary    添加合同状态
// @Produce    application/json
// @Param        object    body        request.AddServiceContractStatus    true    "查询参数"
// @Success    200        {object}    contextx.Response{}
// @Router        /api/serviceContractStatus/add [post]
func (s *ServiceContractStatusApi) Add(c *gin.Context) {
    var params request.AddServiceContractStatus
    ctx, ok := contextx.NewContext(c, &params)
@@ -28,10 +26,7 @@
        return
    }
    serviceContractStatus := new(model.ServiceContractStatus)
    serviceContractStatus.Name = params.Name
    errCode := serviceContractStatusService.AddServiceContractStatus(serviceContractStatus)
    errCode := service.NewServiceContractStatusService().AddServiceContractStatus(&params.ServiceContractStatus)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
@@ -41,13 +36,12 @@
}
// Delete
//
//    @Tags        ServiceContractStatus
//    @Summary    删除服务合同状态
//    @Produce    application/json
//    @Param        id    path        int    true    "查询参数"
//    @Success    200    {object}    contextx.Response{}
//    @Router        /api/serviceContractStatus/delete/{id} [delete]
// @Tags        合同状态
// @Summary    删除合同状态
// @Produce    application/json
// @Param        id    path        int    true    "查询参数"
// @Success    200    {object}    contextx.Response{}
// @Router        /api/serviceContractStatus/delete/{id} [delete]
func (s *ServiceContractStatusApi) Delete(c *gin.Context) {
    ctx, ok := contextx.NewContext(c, nil)
    if !ok {
@@ -55,7 +49,7 @@
    }
    id, _ := strconv.Atoi(c.Param("id"))
    errCode := serviceContractStatusService.DeleteServiceContractStatus(id)
    errCode := service.NewServiceContractStatusService().DeleteServiceContractStatus(id)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
@@ -65,21 +59,24 @@
}
// Update
//
//    @Tags        ServiceContractStatus
//    @Summary    更新服务合同状态
//    @Produce    application/json
//    @Param        object    body        request.UpdateServiceContractStatuss    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/serviceContractStatus/update [put]
// @Tags        合同状态
// @Summary    更新合同状态
// @Produce    application/json
// @Param        object    body        request.UpdateServiceContractStatus    true    "查询参数"
// @Success    200        {object}    contextx.Response{}
// @Router        /api/serviceContractStatus/update [put]
func (s *ServiceContractStatusApi) Update(c *gin.Context) {
    var params request.UpdateServiceContractStatuss
    var params request.UpdateServiceContractStatus
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    if params.Id == 0 {
        ctx.Fail(ecode.ParamsErr)
    }
    params.ServiceContractStatus.Id = params.Id
    errCode := serviceContractStatusService.UpdateServiceContractStatus(params.ServiceContractStatuss)
    errCode := service.NewServiceContractStatusService().UpdateServiceContractStatus(&params.ServiceContractStatus)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
@@ -89,25 +86,27 @@
}
// List
//
//    @Tags        ServiceContractStatus
//    @Summary    获取服务合同状态列表
//    @Produce    application/json
//    @Success    200    {object}    contextx.Response{data=response.ServiceContractStatusResponse}
//    @Router        /api/serviceContractStatus/list [get]
// @Tags        合同状态
// @Summary    获取合同状态列表
// @Produce    application/json
// @Param        object    query        request.GetServiceContractStatusList    true    "参数"
// @Success    200    {object}    response.ListResponse{data=[]model.ServiceContractStatus}
// @Router        /api/serviceContractStatus/list [get]
func (s *ServiceContractStatusApi) List(c *gin.Context) {
    ctx, ok := contextx.NewContext(c, nil)
    var params request.GetServiceContractStatusList
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    serviceContractStatuss, errCode := serviceContractStatusService.GetServiceContractStatusList()
    serviceContractStatus, total, errCode := service.NewServiceContractStatusService().GetServiceContractStatusList()
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.OkWithDetailed(response.ServiceContractStatusResponse{
        List: serviceContractStatuss,
    ctx.OkWithDetailed(response.ListResponse{
        Data: serviceContractStatus,
        Count: total,
    })
}
constvar/salesDetailsProduct.go
New file
@@ -0,0 +1,12 @@
package constvar
type SalesDetailsProductQueryClass string
const (
    SalesDetailsProductQueryClassExpireLessThen60Days SalesDetailsProductQueryClass = ""
)
type SalesDetailsProductKeywordType string
const (
    SalesDetailsProductKeywordCustomerName   SalesDetailsProductKeywordType = ""
)
constvar/serviceContractStatus.go
New file
@@ -0,0 +1,12 @@
package constvar
type ServiceContractStatusQueryClass string
const (
    ServiceContractStatusQueryClassExpireLessThen60Days ServiceContractStatusQueryClass = ""
)
type ServiceContractStatusKeywordType string
const (
    ServiceContractStatusKeywordCustomerName   ServiceContractStatusKeywordType = ""
)
model/product.go
@@ -1,21 +1,122 @@
package model
import (
    "aps_crm/pkg/mysqlx"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
)
type Product struct {
    Id         uint            `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
    Name       string          `json:"name" gorm:"column:name;type:varchar(255);comment:产品名称"`
    Price      decimal.Decimal `json:"price" gorm:"column:price;type:decimal(10,2);comment:产品价格"`
    Number     string          `json:"number" gorm:"column:number;type:varchar(255);comment:产品编号"`
    Amount     decimal.Decimal `json:"amount" gorm:"column:amount;type:int;comment:产品数量"`
    Total      decimal.Decimal `json:"total" gorm:"column:total;type:decimal(10,2);comment:产品总价"`
    Desc       string          `json:"desc" gorm:"column:desc;type:varchar(255);comment:产品描述"`
    gorm.Model `json:"-"`
}
type (
    Product struct {
        Id         uint            `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Name       string          `json:"name" gorm:"column:name;type:varchar(255);comment:产品名称"`
        Price      decimal.Decimal `json:"price" gorm:"column:price;type:decimal(10,2);comment:产品价格"`
        Number     string          `json:"number" gorm:"column:number;type:varchar(255);comment:产品编号"`
        Amount     decimal.Decimal `json:"amount" gorm:"column:amount;type:int;comment:产品数量"`
        Total      decimal.Decimal `json:"total" gorm:"column:total;type:decimal(10,2);comment:产品总价"`
        Desc       string          `json:"desc" gorm:"column:desc;type:varchar(255);comment:产品描述"`
        gorm.Model `json:"-"`
    }
    ProductSearch struct {
        Product
        Ids []uint
        Orm *gorm.DB
    }
)
func (Product) TableName() string {
    return "products"
}
func NewProductSearch(db *gorm.DB) *ProductSearch {
    if db == nil {
        db = mysqlx.GetDB()
    }
    return &ProductSearch{
        Orm: db,
    }
}
func (slf *ProductSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&Product{})
    if slf.Id != 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if slf.Name != "" {
        db = db.Where("name = ?", slf.Name)
    }
    return db
}
// Create 创建
func (slf *ProductSearch) Create(record *Product) error {
    var db = slf.build()
    return db.Create(record).Error
}
func (slf *ProductSearch) CreateBatch(records []*Product) error {
    var db = slf.build()
    return db.Create(records).Error
}
func (slf *ProductSearch) Delete() error {
    var db = slf.build()
    return db.Delete(&Product{}).Error
}
func (slf *ProductSearch) Update(record *Product) error {
    var db = slf.build()
    return db.Updates(record).Error
}
func (slf *ProductSearch) GetListByIds(ids []int) (result []Product, err error) {
    var db = slf.build()
    err = db.Where("id in (?)", ids).Find(&result).Error
    return
}
func (slf *ProductSearch) Find() (result []Product, err error) {
    var db = slf.build()
    err = db.Preload("country").Find(&result).Error
    return
}
func (slf *ProductSearch) SetId(id uint) *ProductSearch {
    slf.Id = id
    return slf
}
func (slf *ProductSearch) SetIds(ids []uint) *ProductSearch {
    slf.Ids = ids
    return slf
}
func (slf *ProductSearch) SetName(name string) *ProductSearch {
    slf.Name = name
    return slf
}
func (slf *ProductSearch) UpdateList(m map[string]interface{}, ids []int) error {
    var db = slf.build()
    return db.Where("id in (?)", ids).Updates(m).Error
}
func (slf *ProductSearch) First() (result Product, err error) {
    var db = slf.build()
    err = db.First(&result).Error
    return
}
func (slf *ProductSearch) FindAll() (result []*Product, err error) {
    var db = slf.build()
    err = db.Find(&result).Error
    return
}
func (slf *ProductSearch) Updates(m map[string]interface{}) error {
    var db = slf.build()
    return db.Updates(m).Error
}
model/request/salesDetailsProduct.go
New file
@@ -0,0 +1,22 @@
package request
import (
    "aps_crm/constvar"
    "aps_crm/model"
)
type AddSalesDetailsProduct struct {
    model.SalesDetailsProduct
}
type UpdateSalesDetailsProduct struct {
    Id int `json:"id"`
    model.SalesDetailsProduct
}
type GetSalesDetailsProductList struct {
    PageInfo
    QueryClass  constvar.SalesDetailsProductQueryClass  `json:"queryClass" form:"queryClass"`
    KeywordType constvar.SalesDetailsProductKeywordType `json:"keywordType"  form:"keywordType"`
    Keyword     string                       `json:"keyword" form:"keyword"`
}
model/request/serviceContractStatus.go
@@ -1,15 +1,22 @@
package request
import (
    "aps_crm/constvar"
    "aps_crm/model"
)
type AddServiceContractStatus struct {
    Name string `  json:"name" binding:"required"`
    model.ServiceContractStatus
}
type UpdateServiceContractStatus struct {
    Id   int    `json:"id" binding:"required"`
    Name string `json:"name" binding:"required"`
    Id int `json:"id"`
    model.ServiceContractStatus
}
type UpdateServiceContractStatuss struct {
    ServiceContractStatuss []*UpdateServiceContractStatus `json:"service_contract_status" binding:"required"`
type GetServiceContractStatusList struct {
    PageInfo
    QueryClass  constvar.ServiceContractStatusQueryClass  `json:"queryClass" form:"queryClass"`
    KeywordType constvar.ServiceContractStatusKeywordType `json:"keywordType"  form:"keywordType"`
    Keyword     string                       `json:"keyword" form:"keyword"`
}
model/salesDetails.go
@@ -224,3 +224,8 @@
    amount = record.AmountUnInvoiced.Add(amount)
    return slf.UpdateByMap(map[string]interface{}{"amount_not_invoiced": amount})
}
func (slf *SalesDetailsSearch) UpdateProducts(record *SalesDetails, newProducts, removedProducts []*Product) error {
    var db = slf.build()
    return db.Updates(record).Error
}
model/salesDetailsProduct.go
New file
@@ -0,0 +1,133 @@
package model
import (
    "aps_crm/constvar"
    "aps_crm/pkg/mysqlx"
    "fmt"
    "gorm.io/gorm"
)
type (
    // SalesDetailsProduct 销售明细和产品关联
    SalesDetailsProduct struct {
        SalesDetailsId int  `json:"id" gorm:"column:id;type:int;primary_key;AUTO_INCREMENT"`
        ProductId      uint `json:"name" gorm:"primary_key;column:name;type:varchar(255);not null;default:'';comment:名称"`
    }
    // SalesDetailsProductSearch 销售明细和产品关联搜索条件
    SalesDetailsProductSearch struct {
        SalesDetailsProduct
        Orm         *gorm.DB
        QueryClass  constvar.SalesDetailsProductQueryClass
        KeywordType constvar.SalesDetailsProductKeywordType
        Keyword     string
        PageNum     int
        PageSize    int
    }
)
func (SalesDetailsProduct) TableName() string {
    return "sales_details_product"
}
func NewSalesDetailsProductSearch() *SalesDetailsProductSearch {
    return &SalesDetailsProductSearch{
        Orm: mysqlx.GetDB(),
    }
}
func (slf *SalesDetailsProductSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&SalesDetailsProduct{})
    return db
}
func (slf *SalesDetailsProductSearch) Create(record *SalesDetailsProduct) error {
    var db = slf.build()
    return db.Create(record).Error
}
func (slf *SalesDetailsProductSearch) CreateBatch(records []*SalesDetailsProduct) error {
    var db = slf.build()
    return db.Create(records).Error
}
func (slf *SalesDetailsProductSearch) Delete() error {
    var db = slf.build()
    return db.Delete(&SalesDetailsProduct{}).Error
}
func (slf *SalesDetailsProductSearch) Update(record *SalesDetailsProduct) error {
    var db = slf.build()
    return db.Updates(record).Error
}
func (slf *SalesDetailsProductSearch) FindAll() ([]*SalesDetailsProduct, error) {
    var db = slf.build()
    var record = make([]*SalesDetailsProduct, 0)
    err := db.Find(&record).Error
    return record, err
}
func (slf *SalesDetailsProductSearch) SetPage(page, size int) *SalesDetailsProductSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
func (slf *SalesDetailsProductSearch) SetOrm(tx *gorm.DB) *SalesDetailsProductSearch {
    slf.Orm = tx
    return slf
}
func (slf *SalesDetailsProductSearch) First() (*SalesDetailsProduct, error) {
    var db = slf.build()
    var record = new(SalesDetailsProduct)
    err := db.First(record).Error
    return record, err
}
func (slf *SalesDetailsProductSearch) Updates(values interface{}) error {
    var db = slf.build()
    return db.Updates(values).Error
}
func (slf *SalesDetailsProductSearch) Save(record *SalesDetailsProduct) error {
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *SalesDetailsProductSearch) Find() ([]*SalesDetailsProduct, int64, error) {
    var db = slf.build()
    var records = make([]*SalesDetailsProduct, 0)
    var total int64
    if err := db.Count(&total).Error; err != nil {
        return records, total, err
    }
    if slf.PageNum > 0 && slf.PageSize > 0 {
        db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
    }
    err := db.Find(&records).Error
    return records, total, err
}
// InitDefaultData 初始化数据
func (slf *SalesDetailsProductSearch) InitDefaultData() error {
    var (
        db          = slf.Orm.Table(slf.TableName())
        total int64 = 0
    )
    if err := db.Count(&total).Error; err != nil {
        return err
    }
    if total != 0 {
        return nil
    }
    records := []*SalesDetailsProduct{}
    return slf.CreateBatch(records)
}
model/serviceContractStatus.go
@@ -1,21 +1,30 @@
package model
import (
    "aps_crm/constvar"
    "aps_crm/pkg/mysqlx"
    "errors"
    "fmt"
    "gorm.io/gorm"
    "sync"
)
type (
    // ServiceContractStatus 商机阶段
    // ServiceContractStatus 合同状态
    ServiceContractStatus struct {
        Id   int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
        Name string `json:"name" gorm:"column:name;type:varchar(255);comment:商机阶段名称"`
        Id   int    `json:"id" gorm:"column:id;type:int;primary_key;AUTO_INCREMENT"`
        Name string `json:"name" gorm:"column:name;type:varchar(255);not null;default:'';comment:名称"`
    }
    // ServiceContractStatusSearch 合同状态搜索条件
    ServiceContractStatusSearch struct {
        ServiceContractStatus
        Orm *gorm.DB
        Orm         *gorm.DB
        QueryClass  constvar.ServiceContractStatusQueryClass
        KeywordType constvar.ServiceContractStatusKeywordType
        Keyword     string
        PageNum     int
        PageSize    int
    }
)
@@ -34,9 +43,6 @@
    if slf.Id != 0 {
        db = db.Where("id = ?", slf.Id)
    }
    if slf.Name != "" {
        db = db.Where("name = ?", slf.Name)
    }
    return db
}
@@ -44,6 +50,11 @@
func (slf *ServiceContractStatusSearch) Create(record *ServiceContractStatus) error {
    var db = slf.build()
    return db.Create(record).Error
}
func (slf *ServiceContractStatusSearch) CreateBatch(records []*ServiceContractStatus) error {
    var db = slf.build()
    return db.Create(records).Error
}
func (slf *ServiceContractStatusSearch) Delete() error {
@@ -56,18 +67,11 @@
    return db.Updates(record).Error
}
func (slf *ServiceContractStatusSearch) Find() (*ServiceContractStatus, error) {
    var db = slf.build()
    var record = new(ServiceContractStatus)
    err := db.First(record).Error
    return record, err
}
func (slf *ServiceContractStatusSearch) FindAll() ([]*ServiceContractStatus, error) {
    var db = slf.build()
    var records = make([]*ServiceContractStatus, 0)
    err := db.Find(&records).Error
    return records, err
    var record = make([]*ServiceContractStatus, 0)
    err := db.Find(&record).Error
    return record, err
}
func (slf *ServiceContractStatusSearch) SetId(id int) *ServiceContractStatusSearch {
@@ -75,19 +79,54 @@
    return slf
}
func (slf *ServiceContractStatusSearch) SetName(name string) *ServiceContractStatusSearch {
    slf.Name = name
func (slf *ServiceContractStatusSearch) SetPage(page, size int) *ServiceContractStatusSearch {
    slf.PageNum, slf.PageSize = page, size
    return slf
}
func (slf *ServiceContractStatusSearch) Updates(data map[string]interface{}) error {
    var db = slf.build()
    return db.Updates(data).Error
func (slf *ServiceContractStatusSearch) SetOrm(tx *gorm.DB) *ServiceContractStatusSearch {
    slf.Orm = tx
    return slf
}
func (slf *ServiceContractStatusSearch) CreateBatch(records []*ServiceContractStatus) error {
func (slf *ServiceContractStatusSearch) First() (*ServiceContractStatus, error) {
    var db = slf.build()
    return db.Create(records).Error
    var record = new(ServiceContractStatus)
    err := db.First(record).Error
    return record, err
}
func (slf *ServiceContractStatusSearch) Updates(values interface{}) error {
    var db = slf.build()
    return db.Updates(values).Error
}
func (slf *ServiceContractStatusSearch) Save(record *ServiceContractStatus) error {
    if record.Id == 0 {
        return errors.New("id为空")
    }
    var db = slf.build()
    if err := db.Save(record).Error; err != nil {
        return fmt.Errorf("save err: %v, record: %+v", err, record)
    }
    return nil
}
func (slf *ServiceContractStatusSearch) Find() ([]*ServiceContractStatus, int64, error) {
    var db = slf.build()
    var records = make([]*ServiceContractStatus, 0)
    var total int64
    if err := db.Count(&total).Error; err != nil {
        return records, total, err
    }
    if slf.PageNum > 0 && slf.PageSize > 0 {
        db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize)
    }
    err := db.Find(&records).Error
    return records, total, err
}
// InitDefaultData 初始化数据
router/serviceContractStatus.go
@@ -1,4 +1,3 @@
package router
import (
@@ -17,4 +16,4 @@
        serviceContractStatusRouter.PUT("update", serviceContractStatusApi.Update)        // 更新$CName$
        serviceContractStatusRouter.GET("list", serviceContractStatusApi.List)            // 获取$CName$列表
    }
}
}
service/dataServer.go
@@ -105,7 +105,7 @@
    data.OrderType = orderTypeList
    // get ServiceContractStatus list
    serviceContractStatusList, _ := ServiceGroup.GetServiceContractStatusList()
    serviceContractStatusList, _, _ := ServiceGroup.GetServiceContractStatusList()
    data.ServiceContractStatus = serviceContractStatusList
    // get ServiceContractType list
@@ -148,8 +148,7 @@
    currencyList, _ := ServiceGroup.GetCurrencyList()
    data.Currency = currencyList
    errCode = ecode.OK
    return
}
}
service/salesDetails.go
@@ -5,6 +5,7 @@
    "aps_crm/model"
    "aps_crm/pkg/ecode"
    "github.com/shopspring/decimal"
    "gorm.io/gorm"
)
type SalesDetailsService struct{}
@@ -71,7 +72,29 @@
    salesDetails.AmountReceivable = salesDetails.AmountTotal.Sub(salesDetails.AmountReceived)
    salesDetails.AmountUnInvoiced = salesDetails.AmountTotal.Sub(salesDetails.AmountInvoiced)
    err = model.NewSalesDetailsSearch().SetId(salesDetails.Id).Update(salesDetails)
    err = model.WithTransaction(func(db *gorm.DB) error {
        err = model.NewSalesDetailsSearch().SetId(salesDetails.Id).Update(salesDetails)
        if err != nil {
            return err
        }
        err = model.NewProductSearch(db).SetIds(removedProductIds).Delete()
        if err != nil {
            return err
        }
        err = model.NewProductSearch(db).CreateBatch(newProducts)
        if err != nil {
            return err
        }
        var rel []*model.SalesDetailsProduct
        for _, p := range newProducts {
            rel = append(rel, &model.SalesDetailsProduct{
                SalesDetailsId: salesDetails.Id,
                ProductId:      p.Id,
            })
        }
        return model.NewSalesDetailsProductSearch().CreateBatch(rel)
    })
    if err != nil {
        return ecode.SalesDetailsSetErr
    }
service/serviceContractStatus.go
@@ -1,4 +1,3 @@
package service
import (
@@ -9,61 +8,68 @@
type ServiceContractStatusService struct{}
func NewServiceContractStatusService() ServiceContractStatusService {
    return ServiceContractStatusService{}
}
func (ServiceContractStatusService) AddServiceContractStatus(serviceContractStatus *model.ServiceContractStatus) int {
    err := model.NewServiceContractStatusSearch().Create(serviceContractStatus)
    if err != nil {
        return ecode.ServiceContractStatusExist
        return ecode.DBErr
    }
    return ecode.OK
}
func (ServiceContractStatusService) DeleteServiceContractStatus(id int) int {
    _, err := model.NewServiceContractStatusSearch().SetId(id).Find()
func (ServiceContractStatusService) GetServiceContractStatus(id int) (*model.ServiceContractStatus, int) {
    serviceContractStatus, err := model.NewServiceContractStatusSearch().SetId(id).First()
    if err != nil {
        return ecode.ServiceContractStatusNotExist
    }
    err = model.NewServiceContractStatusSearch().SetId(id).Delete()
    if err != nil {
        return ecode.ServiceContractStatusNotExist
    }
    return ecode.OK
}
func (ServiceContractStatusService) GetServiceContractStatusList() ([]*model.ServiceContractStatus, int) {
    list, err := model.NewServiceContractStatusSearch().FindAll()
    if err != nil {
        return nil, ecode.ServiceContractStatusListErr
    }
    return list, ecode.OK
}
func (ServiceContractStatusService) UpdateServiceContractStatus(serviceContractStatuss []*request.UpdateServiceContractStatus) int {
    for _, v := range serviceContractStatuss {
        // check serviceContractStatus exist
        _, err := model.NewServiceContractStatusSearch().SetId(v.Id).Find()
        if err != nil {
            return ecode.ServiceContractStatusNotExist
        }
        err = model.NewServiceContractStatusSearch().SetId(v.Id).Updates(map[string]interface{}{
            "name": v.Name,
        })
        if err != nil {
            return ecode.ServiceContractStatusSetErr
        }
    }
    return ecode.OK
}
func (ServiceContractStatusService) GetServiceContractStatusDetail(id int) (*model.ServiceContractStatus, int) {
    serviceContractStatus, err := model.NewServiceContractStatusSearch().SetId(id).Find()
    if err != nil {
        return nil, ecode.ServiceContractStatusNotExist
        return nil, ecode.DBErr
    }
    return serviceContractStatus, ecode.OK
}
func (ServiceContractStatusService) DeleteServiceContractStatus(id int) int {
    err := model.NewServiceContractStatusSearch().SetId(id).Delete()
    if err != nil {
        return ecode.DBErr
    }
    return ecode.OK
}
func (ServiceContractStatusService) GetServiceContractStatusList() ([]*model.ServiceContractStatus, int64, int) {
    list, total, err := model.NewServiceContractStatusSearch().Find()
    if err != nil {
        return nil, 0, ecode.DBErr
    }
    return list, total, ecode.OK
}
func (ServiceContractStatusService) UpdateServiceContractStatuss(ServiceContractStatuss []*request.UpdateServiceContractStatus) int {
    for _, v := range ServiceContractStatuss {
        // check ServiceContractStatus exist
        _, err := model.NewServiceContractStatusSearch().SetId(v.Id).First()
        if err != nil {
            return ecode.DBErr
        }
        err = model.NewServiceContractStatusSearch().SetId(v.Id).Updates(map[string]interface{}{
        })
        if err != nil {
            return ecode.DBErr
        }
    }
    return ecode.OK
}
func (ServiceContractStatusService) UpdateServiceContractStatus(serviceContractStatus *model.ServiceContractStatus) int {
        err := model.NewServiceContractStatusSearch().SetId(serviceContractStatus.Id).Save(serviceContractStatus)
        if err != nil {
            return ecode.DBErr
        }
    return ecode.OK
}