zhangqian
2023-11-01 530fed8ec225453572d57b15c200ab062c335457
公海member_id使用0
5个文件已修改
228 ■■■■ 已修改文件
api/v1/assign.go 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/client.go 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constvar/const.go 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
model/client.go 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/assign.go 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/assign.go
@@ -1,49 +1,44 @@
package v1
import (
    "aps_crm/model/request"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "github.com/gin-gonic/gin"
)
type AssignApi struct{}
// Assign
//
//    @Tags        Assign
//    @Summary    分配
//    @Produce    application/json
//    @Param        object    body        request.Assign true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/assign/assign [post]
func (au *AssignApi) Assign(c *gin.Context) {
    var params request.Assign
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    if params.MemberId == 0 {
        ctx.Fail(ecode.AssignWrongMemberId)
        return
    }
    if len(params.Ids) == 0 {
        ctx.Fail(ecode.AssignWrongId)
        return
    }
    if params.Type == "" {
        ctx.Fail(ecode.AssignWrongModelType)
        return
    }
    errCode := assignService.Assign(params.MemberId, params.Ids, params.Type)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
package v1
import (
    "aps_crm/model/request"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "github.com/gin-gonic/gin"
)
type AssignApi struct{}
// Assign
//
//    @Tags        Assign
//    @Summary    分配
//    @Produce    application/json
//    @Param        object    body        request.Assign true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/assign/assign [post]
func (au *AssignApi) Assign(c *gin.Context) {
    var params request.Assign
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    if len(params.Ids) == 0 {
        ctx.Fail(ecode.AssignWrongId)
        return
    }
    if params.Type == "" {
        ctx.Fail(ecode.AssignWrongModelType)
        return
    }
    errCode := assignService.Assign(params.MemberId, params.Ids, params.Type)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
api/v1/client.go
@@ -28,13 +28,6 @@
        return
    }
    if params.MemberId == 0 {
        userInfo := utils.GetUserInfo(c)
        if userInfo.UserType == constvar.UserTypeSub {
            params.MemberId = userInfo.CrmUserId
        }
    }
    errCode, client := checkClientParams(params.Client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
@@ -116,12 +109,7 @@
    client.Business.IndustryId = params.IndustryId
    client.Business.EnterpriseNatureId = params.EnterpriseNatureId
    client.Business.EnterpriseScaleId = params.EnterpriseScaleId
    //销售负责人为空时为公海客户
    if params.MemberId == 0 {
        client.MemberId = 1
    } else {
        client.MemberId = params.MemberId
    }
    client.MemberId = params.MemberId
    client.CodeStandID = params.CodeStandID
    //if params.Contact.Name != "" {
@@ -215,12 +203,20 @@
        return
    }
    userInfo := utils.GetUserInfo(c)
    if userInfo.UserType == constvar.UserTypeSub {
        if params.SearchMap == nil {
            params.SearchMap = make(map[string]interface{}, 0)
    var isPublic bool
    if params.SearchMap != nil && params.SearchMap["is_public"] != nil {
        if v, ok := params.SearchMap["is_public"].(bool); ok {
            isPublic = v
        }
        params.SearchMap["member_ids"] = userInfo.SubUserIds
    }
    if !isPublic {
        userInfo := utils.GetUserInfo(c)
        if userInfo.UserType == constvar.UserTypeSub {
            if params.SearchMap == nil {
                params.SearchMap = make(map[string]interface{}, 0)
            }
            params.SearchMap["member_ids"] = userInfo.SubUserIds
        }
    }
    clients, total, errCode := clientService.GetClientList(params.Page, params.PageSize, params.SearchMap)
constvar/const.go
@@ -32,13 +32,6 @@
    UserTypeSub                         // 子账户
)
type NotAdmin int
const (
    NotAdminAll NotAdmin = iota // 公海
    NotAdminYes                 // 我的客户
)
type SalesStatus int
const (
model/client.go
@@ -117,16 +117,16 @@
                    db = db.Joins("Member").Where("Member.username LIKE ?", "%"+v+"%")
                }
            case int, uint, int64, float64:
            case int, uint, int64, float64, bool:
                if key == "id" || key == "client_type_id" || key == "client_status_id" || key == "member_id" {
                    db = db.Where(key+" = ?", v)
                }
                if key == "not_admin" {
                    if v == float64(constvar.NotAdminYes) {
                        db = db.Where("clients.member_id != ?", constvar.UserTypeSuper)
                    } else {
                        db = db.Where("clients.member_id = ?", constvar.UserTypeSuper)
                if key == "is_public" {
                    if val, ok := v.(bool); ok {
                        if val {
                            db = db.Where("clients.member_id = ?", 0)
                        }
                    }
                }
            case []int:
service/assign.go
@@ -1,41 +1,43 @@
package service
import (
    "aps_crm/model"
    "aps_crm/pkg/ecode"
)
type AssignService struct{}
type Assign interface {
    Assign(id int) error
}
func (AssignService) Assign(memberId int, ids []int, modelType string) int {
    // check member exist
    _, err := model.NewUserSearch(nil).SetUserId(memberId).First()
    if err != nil {
        return ecode.UserNotExist
    }
    var errCode int
    switch modelType {
    case "client":
        errCode = ClientService{}.Assign(ids, memberId)
    case "salesLead":
        errCode = SalesLeadsService{}.Assign(ids, memberId)
    case "contact":
        errCode = ContactService{}.Assign(ids, memberId)
    case "followRecord":
        errCode = FollowRecordService{}.Assign(ids, memberId)
    default:
        errCode = ecode.AssignWrongModelType
    }
    if errCode != ecode.OK {
        return errCode
    }
    return ecode.OK
}
package service
import (
    "aps_crm/model"
    "aps_crm/pkg/ecode"
)
type AssignService struct{}
type Assign interface {
    Assign(id int) error
}
func (AssignService) Assign(memberId int, ids []int, modelType string) int {
    // check member exist
    if memberId != 0 {
        _, err := model.NewUserSearch(nil).SetUserId(memberId).First()
        if err != nil {
            return ecode.UserNotExist
        }
    }
    var errCode int
    switch modelType {
    case "client":
        errCode = ClientService{}.Assign(ids, memberId)
    case "salesLead":
        errCode = SalesLeadsService{}.Assign(ids, memberId)
    case "contact":
        errCode = ContactService{}.Assign(ids, memberId)
    case "followRecord":
        errCode = FollowRecordService{}.Assign(ids, memberId)
    default:
        errCode = ecode.AssignWrongModelType
    }
    if errCode != ecode.OK {
        return errCode
    }
    return ecode.OK
}