From b90a31431164b4b0756e4ef76f08b08953b8b04d Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 13 十月 2023 14:56:23 +0800 Subject: [PATCH] 服务合同简单数据权限 --- model/serviceContract.go | 17 ++++++++++++++--- api/v1/serviceContract.go | 10 +++++++++- service/serviceContract.go | 3 ++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/api/v1/serviceContract.go b/api/v1/serviceContract.go index 012aa4b..75889fe 100644 --- a/api/v1/serviceContract.go +++ b/api/v1/serviceContract.go @@ -1,12 +1,14 @@ package v1 import ( + "aps_crm/constvar" "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "aps_crm/pkg/structx" + "aps_crm/utils" "github.com/gin-gonic/gin" ) @@ -136,7 +138,13 @@ return } - serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword) + var memberIds []int + userInfo := utils.GetUserInfo(c) + if userInfo.UserType == constvar.UserTypeSub { + memberIds = []int{userInfo.CrmUserId} + } + + serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword, memberIds) if errCode != ecode.OK { ctx.Fail(errCode) return diff --git a/model/serviceContract.go b/model/serviceContract.go index d4b8744..87f2744 100644 --- a/model/serviceContract.go +++ b/model/serviceContract.go @@ -36,11 +36,11 @@ ServiceTimes int `json:"serviceTimes" gorm:"column:service_times;type:int;comment:鏈嶅姟娆℃暟"` Terms string `json:"terms" gorm:"column:terms;type:text;comment:鏉℃"` Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"` - AmountReceivable decimal.Decimal `gorm:"column:amount_receivable;type:decimal(12,2);comment:搴旀敹閲戦" json:"amountReceivable"` // 搴旀敹閲戦 - AmountReceived decimal.Decimal `gorm:"column:amount_received;type:decimal(12,2);comment:宸叉敹閲戦" json:"amountReceived"` // 宸叉敹閲戦 + AmountReceivable decimal.Decimal `gorm:"column:amount_receivable;type:decimal(12,2);comment:搴旀敹閲戦" json:"amountReceivable"` // 搴旀敹閲戦 + AmountReceived decimal.Decimal `gorm:"column:amount_received;type:decimal(12,2);comment:宸叉敹閲戦" json:"amountReceived"` // 宸叉敹閲戦 AmountInvoiced decimal.Decimal `gorm:"column:amount_invoiced;type:decimal(12,2);comment:宸插紑绁ㄩ噾棰�" json:"amountInvoiced"` // 宸插紑绁ㄩ噾棰� AmountUnInvoiced decimal.Decimal `gorm:"column:amount_not_invoiced;type:decimal(12,2);comment:鏈紑绁ㄩ噾棰�" json:"amountUnInvoiced"` // 鏈紑绁ㄩ噾棰� - AmountTotal decimal.Decimal `gorm:"column:amount_total;type:decimal(12,2);comment:浠风◣鍚堣" json:"amountTotal"` // 浠风◣鍚堣 + AmountTotal decimal.Decimal `gorm:"column:amount_total;type:decimal(12,2);comment:浠风◣鍚堣" json:"amountTotal"` // 浠风◣鍚堣 Products []*Product `json:"products" gorm:"many2many:service_contract_product;"` CrmModel } @@ -55,6 +55,7 @@ PageNum int PageSize int Preload bool + MemberIds []int } ) @@ -108,6 +109,11 @@ db = db.Where("amount_receivable = ?", slf.Keyword) } + + if len(slf.MemberIds) > 0 { + db = db.Where("member_id in ?", slf.MemberIds) + } + if slf.Preload { db = db. Preload("Client"). @@ -198,6 +204,11 @@ return slf } +func (slf *ServiceContractSearch) SetMemberIds(memberIds []int) *ServiceContractSearch { + slf.MemberIds = memberIds + return slf +} + func (slf *ServiceContractSearch) SetPreload(preload bool) *ServiceContractSearch { slf.Preload = preload return slf diff --git a/service/serviceContract.go b/service/serviceContract.go index 9ca7751..b5f5add 100644 --- a/service/serviceContract.go +++ b/service/serviceContract.go @@ -117,12 +117,13 @@ return ecode.OK } -func (SContractService) GetServiceContractList(page, pageSize int, queryClass constvar.ServiceContractQueryClass, keywordType constvar.ServiceContractKeywordType, keyword string) ([]*model.ServiceContract, int64, int) { +func (SContractService) GetServiceContractList(page, pageSize int, queryClass constvar.ServiceContractQueryClass, keywordType constvar.ServiceContractKeywordType, keyword string, memberIds []int) ([]*model.ServiceContract, int64, int) { // get contact list contacts, total, err := model.NewServiceContractSearch(). SetKeyword(keyword). SetKeywordType(keywordType). SetQueryClass(queryClass). + SetMemberIds(memberIds). SetPage(page, pageSize). SetPreload(true). Find() -- Gitblit v1.8.0