From 72f9f7676cd412a72e5e0658e3d46579bf7febf1 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 13 十月 2023 15:02:13 +0800 Subject: [PATCH] 客户服务单简单数据权限 --- model/serviceOrder.go | 24 +++++++++++++++++------- service/serviceOrder.go | 3 ++- api/v1/serviceOrder.go | 10 +++++++++- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/api/v1/serviceOrder.go b/api/v1/serviceOrder.go index 887979d..239ff24 100644 --- a/api/v1/serviceOrder.go +++ b/api/v1/serviceOrder.go @@ -1,6 +1,7 @@ package v1 import ( + "aps_crm/constvar" "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" @@ -8,6 +9,7 @@ "aps_crm/pkg/ecode" "aps_crm/pkg/structx" "aps_crm/service" + "aps_crm/utils" "github.com/gin-gonic/gin" "strconv" ) @@ -132,7 +134,13 @@ return } - serviceOrder, total, errCode := service.NewServiceOrderService().GetServiceOrderList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword, params.ServiceContractId, params.SalesDetailsId) + var memberIds []int + userInfo := utils.GetUserInfo(c) + if userInfo.UserType == constvar.UserTypeSub { + memberIds = []int{userInfo.CrmUserId} + } + + serviceOrder, total, errCode := service.NewServiceOrderService().GetServiceOrderList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword, params.ServiceContractId, params.SalesDetailsId, memberIds) if errCode != ecode.OK { ctx.Fail(errCode) return diff --git a/model/serviceOrder.go b/model/serviceOrder.go index e5a5f6e..2d1dc35 100644 --- a/model/serviceOrder.go +++ b/model/serviceOrder.go @@ -60,13 +60,14 @@ // ServiceOrderSearch 鏈嶅姟鍗曟悳绱㈡潯浠� ServiceOrderSearch struct { ServiceOrder - Orm *gorm.DB - QueryClass constvar.ServiceOrderQueryClass - KeywordType constvar.ServiceOrderKeywordType - Keyword string - PageNum int - PageSize int - Preload bool + Orm *gorm.DB + QueryClass constvar.ServiceOrderQueryClass + KeywordType constvar.ServiceOrderKeywordType + Keyword string + PageNum int + PageSize int + Preload bool + ServiceManIds []int } ) @@ -123,6 +124,10 @@ db = db.Joins("ServiceType", clause.LeftJoin).Where("ServiceType.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) case constvar.ServiceOrderKeywordFaultType: db = db.Joins("FaultType", clause.LeftJoin).Where("FaultType.name like ?", fmt.Sprintf("%%%s%%", slf.Keyword)) + } + + if len(slf.ServiceManIds) > 0 { + db = db.Where("service_man_id in ?", slf.ServiceManIds) } return db @@ -191,6 +196,11 @@ return slf } +func (slf *ServiceOrderSearch) SetMemberIds(memberIds []int) *ServiceOrderSearch { + slf.ServiceManIds = memberIds + return slf +} + func (slf *ServiceOrderSearch) SetPreload(preload bool) *ServiceOrderSearch { slf.Preload = preload return slf diff --git a/service/serviceOrder.go b/service/serviceOrder.go index 97c6df1..6598ad0 100644 --- a/service/serviceOrder.go +++ b/service/serviceOrder.go @@ -38,7 +38,7 @@ return ecode.OK } -func (ServiceOrderService) GetServiceOrderList(page, pageSize int, queryClass constvar.ServiceOrderQueryClass, keywordType constvar.ServiceOrderKeywordType, keyword string, serviceContractId, salesDetailsId int) ([]*model.ServiceOrder, int64, int) { +func (ServiceOrderService) GetServiceOrderList(page, pageSize int, queryClass constvar.ServiceOrderQueryClass, keywordType constvar.ServiceOrderKeywordType, keyword string, serviceContractId, salesDetailsId int, memberIds []int) ([]*model.ServiceOrder, int64, int) { list, total, err := model.NewServiceOrderSearch(). SetPage(page, pageSize). SetKeyword(keyword). @@ -47,6 +47,7 @@ SetPreload(true). SetServiceContractId(serviceContractId). SetSalesDetailsId(salesDetailsId). + SetMemberIds(memberIds). Find() if err != nil { return nil, 0, ecode.DBErr -- Gitblit v1.8.0