From f264456b1e4fd284f53ecc4c70a3b951578bfd2d Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 18 八月 2023 17:13:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
constvar/serviceContractStatus.go | 12 +
service/salesDetails.go | 25 ++
constvar/salesDetailsProduct.go | 12 +
model/request/serviceContractStatus.go | 19 +
model/serviceContractStatus.go | 87 +++++--
service/dataServer.go | 5
model/salesDetailsProduct.go | 133 ++++++++++++
model/request/salesDetailsProduct.go | 22 ++
service/serviceContractStatus.go | 98 ++++----
model/product.go | 121 ++++++++++
model/salesDetails.go | 5
router/serviceContractStatus.go | 3
api/v1/serviceContractStatus.go | 79 +++---
13 files changed, 489 insertions(+), 132 deletions(-)
diff --git a/api/v1/serviceContractStatus.go b/api/v1/serviceContractStatus.go
index ffbf8bd..c3786b7 100644
--- a/api/v1/serviceContractStatus.go
+++ b/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, ¶ms)
@@ -28,10 +26,7 @@
return
}
- serviceContractStatus := new(model.ServiceContractStatus)
- serviceContractStatus.Name = params.Name
-
- errCode := serviceContractStatusService.AddServiceContractStatus(serviceContractStatus)
+ errCode := service.NewServiceContractStatusService().AddServiceContractStatus(¶ms.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, ¶ms)
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(¶ms.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, ¶ms)
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,
})
}
diff --git a/constvar/salesDetailsProduct.go b/constvar/salesDetailsProduct.go
new file mode 100644
index 0000000..6803cbb
--- /dev/null
+++ b/constvar/salesDetailsProduct.go
@@ -0,0 +1,12 @@
+package constvar
+type SalesDetailsProductQueryClass string
+
+const (
+ SalesDetailsProductQueryClassExpireLessThen60Days SalesDetailsProductQueryClass = ""
+)
+
+type SalesDetailsProductKeywordType string
+
+const (
+ SalesDetailsProductKeywordCustomerName SalesDetailsProductKeywordType = ""
+)
diff --git a/constvar/serviceContractStatus.go b/constvar/serviceContractStatus.go
new file mode 100644
index 0000000..232e49a
--- /dev/null
+++ b/constvar/serviceContractStatus.go
@@ -0,0 +1,12 @@
+package constvar
+type ServiceContractStatusQueryClass string
+
+const (
+ ServiceContractStatusQueryClassExpireLessThen60Days ServiceContractStatusQueryClass = ""
+)
+
+type ServiceContractStatusKeywordType string
+
+const (
+ ServiceContractStatusKeywordCustomerName ServiceContractStatusKeywordType = ""
+)
diff --git a/model/product.go b/model/product.go
index a61ee23..7ec7b6b 100644
--- a/model/product.go
+++ b/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
+}
diff --git a/model/request/salesDetailsProduct.go b/model/request/salesDetailsProduct.go
new file mode 100644
index 0000000..b494989
--- /dev/null
+++ b/model/request/salesDetailsProduct.go
@@ -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"`
+}
diff --git a/model/request/serviceContractStatus.go b/model/request/serviceContractStatus.go
index 98ec257..8c3d71d 100644
--- a/model/request/serviceContractStatus.go
+++ b/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"`
}
diff --git a/model/salesDetails.go b/model/salesDetails.go
index 55a6912..a2659d8 100644
--- a/model/salesDetails.go
+++ b/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
+}
diff --git a/model/salesDetailsProduct.go b/model/salesDetailsProduct.go
new file mode 100644
index 0000000..467b869
--- /dev/null
+++ b/model/salesDetailsProduct.go
@@ -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)
+}
diff --git a/model/serviceContractStatus.go b/model/serviceContractStatus.go
index f7e271b..881b69d 100644
--- a/model/serviceContractStatus.go
+++ b/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 鍒濆鍖栨暟鎹�
diff --git a/router/serviceContractStatus.go b/router/serviceContractStatus.go
index 0f0d48e..53438ff 100644
--- a/router/serviceContractStatus.go
+++ b/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$鍒楄〃
}
-}
\ No newline at end of file
+}
diff --git a/service/dataServer.go b/service/dataServer.go
index ab15917..4ea3990 100644
--- a/service/dataServer.go
+++ b/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
-}
\ No newline at end of file
+}
diff --git a/service/salesDetails.go b/service/salesDetails.go
index fb9b9dd..a2e5ad8 100644
--- a/service/salesDetails.go
+++ b/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
}
diff --git a/service/serviceContractStatus.go b/service/serviceContractStatus.go
index 93cced0..ac5a82a 100644
--- a/service/serviceContractStatus.go
+++ b/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
+}
--
Gitblit v1.8.0