From e2ac73ac42a3fb4e89b0ca8c4d83f3bc32cd8dac Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 13 十月 2023 14:40:34 +0800 Subject: [PATCH] 销售明细简单数据权限 --- service/salesDetails.go | 6 ++++-- model/salesDetails.go | 11 +++++++++++ api/v1/salesDetails.go | 10 +++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go index 24a27a1..9e21d35 100644 --- a/api/v1/salesDetails.go +++ b/api/v1/salesDetails.go @@ -1,11 +1,13 @@ 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/utils" "github.com/gin-gonic/gin" "strconv" ) @@ -157,7 +159,13 @@ return } - salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.KeywordType, params.Keyword) + var memberIds []int + userInfo := utils.GetUserInfo(c) + if userInfo.UserType == constvar.UserTypeSub { + memberIds = []int{userInfo.CrmUserId} + } + + salesDetailss, total, errCode := salesDetailsService.GetSalesDetailsList(params.Page, params.PageSize, params.KeywordType, params.Keyword, memberIds) if errCode != ecode.OK { ctx.Fail(errCode) return diff --git a/model/salesDetails.go b/model/salesDetails.go index ed81fab..4444b2e 100644 --- a/model/salesDetails.go +++ b/model/salesDetails.go @@ -51,6 +51,7 @@ PageNum int PageSize int Preload bool + MemberIds []int } ) @@ -83,6 +84,11 @@ db = db.Joins("left join sales_details_product sdp on sdp.sales_details_id = sales_details.id left join products on sdp.product_id = products.id").Where("products.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) } + + if len(slf.MemberIds) > 0 { + db = db.Where("member_id in ?", slf.MemberIds) + } + if slf.Preload { db = db.Preload("Products"). Preload("Member"). @@ -156,6 +162,11 @@ return slf } +func (slf *SalesDetailsSearch) SetMemberIds(memberIds []int) *SalesDetailsSearch { + slf.MemberIds = memberIds + return slf +} + func (slf *SalesDetailsSearch) SetPreload(preload bool) *SalesDetailsSearch { slf.Preload = preload return slf diff --git a/service/salesDetails.go b/service/salesDetails.go index fa497bf..df258a4 100644 --- a/service/salesDetails.go +++ b/service/salesDetails.go @@ -114,12 +114,14 @@ return ecode.OK } -func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keywordType constvar.SalesDetailsKeywordType, keyword string) ([]*model.SalesDetails, int64, int) { +func (SalesDetailsService) GetSalesDetailsList(page, pageSize int, keywordType constvar.SalesDetailsKeywordType, keyword string, memberIds []int) ([]*model.SalesDetails, int64, int) { // get contact list contacts, total, err := model.NewSalesDetailsSearch(). SetPreload(true). SetKeywordType(keywordType). - SetKeyword(keyword).SetPage(page, pageSize).FindAll() + SetKeyword(keyword).SetPage(page, pageSize). + SetMemberIds(memberIds). + FindAll() if err != nil { return nil, 0, ecode.SalesDetailsListErr } -- Gitblit v1.8.0