fix
wangpengfei
2023-08-09 a749e859e27e1046a4e018baadbe18a7c5e01b0d
fix

fix the bug that client_status didn't change when adding and updating
1个文件已修改
405 ■■■■ 已修改文件
api/v1/client.go 405 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/client.go
@@ -1,202 +1,203 @@
package v1
import (
    "aps_crm/model"
    "aps_crm/model/request"
    "aps_crm/model/response"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "github.com/gin-gonic/gin"
)
type ClientApi struct{}
// Add
//
//    @Tags        Client
//    @Summary    添加客户
//    @Produce    application/json
//    @Param        object    body        request.AddClient    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/client/add [post]
func (cli *ClientApi) Add(c *gin.Context) {
    var params request.AddClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode, client := checkClientParams(params.Client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    errCode = clientService.AddClient(client, params.SalesLeadsId)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
func checkClientParams(params request.Client) (int, *model.Client) {
    client := new(model.Client)
    //if params.Name == "" {
    //    return ecode.InvalidParams, nil
    //}
    client.Name = params.Name
    //if params.ClientStatusId == 0 {
    //    return ecode.InvalidParams, nil
    //}
    //client.ClientStatusId = params.ClientStatusId
    //
    //if params.MemberId == 0 {
    //    return ecode.InvalidParams, nil
    //}
    client.MemberId = params.MemberId
    t, err := checkTimeFormat(params.NextVisitTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.NextVisitTime = t
    t, err = checkTimeFormat(params.LatestServiceTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.LatestServiceTime = t
    t, err = checkTimeFormat(params.RegistrationTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.RegistrationTime = t
    client.ClientTypeId = params.ClientTypeId
    client.ClientOriginId = params.ClientOriginId
    client.ClientLevelId = params.ClientLevelId
    client.DetailAddress = params.DetailAddress
    client.Remark = params.Remark
    client.Number = params.Number
    client.ServiceMemberId = params.ServiceMemberId
    client.ProvinceId = params.ProvinceId
    client.CityId = params.CityId
    client.RegionId = params.RegionId
    client.CountryId = params.CountryId
    client.Business.BusinessScope = params.BusinessScope
    client.Business.Representative = params.Representative
    client.Business.RegisteredCapitalId = params.RegisteredCapitalId
    client.Business.IndustryId = params.IndustryId
    client.Business.EnterpriseNatureId = params.EnterpriseNatureId
    client.Business.EnterpriseScaleId = params.EnterpriseScaleId
    if params.Contact.Name != "" {
        // assign the client's member id to contact when adding
        params.Contact.MemberId = params.MemberId
        errCode, contact := checkContactParams(params.Contact)
        if errCode != ecode.OK {
            return errCode, nil
        }
        client.Contacts = []model.Contact{contact}
    }
    return ecode.OK, client
}
// Delete
//
//    @Tags        Client
//    @Summary    删除客户
//    @Produce    application/json
//    @Param        object    body        request.DeleteClient true    "查询参数"
//    @Success    200    {object}    contextx.Response{}
//    @Router        /api/client/delete [delete]
func (cli *ClientApi) Delete(c *gin.Context) {
    var params request.DeleteClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode := clientService.DeleteClient(params.Ids)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
// Update
//
//    @Tags        Client
//    @Summary    更新客户
//    @Produce    application/json
//    @Param        object    body        request.UpdateClient    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/client/update [put]
func (cli *ClientApi) Update(c *gin.Context) {
    var params request.UpdateClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode, client := checkClientParams(params.Client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    // check id
    if params.Id == 0 {
        ctx.Fail(ecode.InvalidParams)
        return
    }
    client.Id = params.Id
    errCode = clientService.UpdateClient(client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
// List
//
//    @Tags        Client
//    @Summary    客户列表
//    @Produce    application/json
//    @Param        object    body        request.GetClientList    true    "参数"
//    @Success    200        {object}    contextx.Response{data=response.ClientResponse}
//    @Router        /api/client/list [post]
func (cli *ClientApi) List(c *gin.Context) {
    var params request.GetClientList
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    clients, total, errCode := clientService.GetClientList(params.Page, params.PageSize, params.SearchMap)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.OkWithDetailed(response.ClientResponse{
        List:  clients,
        Count: int(total),
    })
}
package v1
import (
    "aps_crm/model"
    "aps_crm/model/request"
    "aps_crm/model/response"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "github.com/gin-gonic/gin"
)
type ClientApi struct{}
// Add
//
//    @Tags        Client
//    @Summary    添加客户
//    @Produce    application/json
//    @Param        object    body        request.AddClient    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/client/add [post]
func (cli *ClientApi) Add(c *gin.Context) {
    var params request.AddClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode, client := checkClientParams(params.Client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    errCode = clientService.AddClient(client, params.SalesLeadsId)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
func checkClientParams(params request.Client) (int, *model.Client) {
    client := new(model.Client)
    //if params.Name == "" {
    //    return ecode.InvalidParams, nil
    //}
    client.Name = params.Name
    //if params.ClientStatusId == 0 {
    //    return ecode.InvalidParams, nil
    //}
    //client.ClientStatusId = params.ClientStatusId
    //
    //if params.MemberId == 0 {
    //    return ecode.InvalidParams, nil
    //}
    t, err := checkTimeFormat(params.NextVisitTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.NextVisitTime = t
    t, err = checkTimeFormat(params.LatestServiceTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.LatestServiceTime = t
    t, err = checkTimeFormat(params.RegistrationTime)
    if err != nil {
        return ecode.InvalidParams, nil
    }
    client.RegistrationTime = t
    client.ClientTypeId = params.ClientTypeId
    client.ClientOriginId = params.ClientOriginId
    client.ClientLevelId = params.ClientLevelId
    client.DetailAddress = params.DetailAddress
    client.ClientStatusId = params.ClientStatusId
    client.Remark = params.Remark
    client.Number = params.Number
    client.ServiceMemberId = params.ServiceMemberId
    client.ProvinceId = params.ProvinceId
    client.CityId = params.CityId
    client.RegionId = params.RegionId
    client.CountryId = params.CountryId
    client.Business.BusinessScope = params.BusinessScope
    client.Business.Representative = params.Representative
    client.Business.RegisteredCapitalId = params.RegisteredCapitalId
    client.Business.IndustryId = params.IndustryId
    client.Business.EnterpriseNatureId = params.EnterpriseNatureId
    client.Business.EnterpriseScaleId = params.EnterpriseScaleId
    client.MemberId = params.MemberId
    if params.Contact.Name != "" {
        // assign the client's member id to contact when adding
        params.Contact.MemberId = params.MemberId
        errCode, contact := checkContactParams(params.Contact)
        if errCode != ecode.OK {
            return errCode, nil
        }
        client.Contacts = []model.Contact{contact}
    }
    return ecode.OK, client
}
// Delete
//
//    @Tags        Client
//    @Summary    删除客户
//    @Produce    application/json
//    @Param        object    body        request.DeleteClient true    "查询参数"
//    @Success    200    {object}    contextx.Response{}
//    @Router        /api/client/delete [delete]
func (cli *ClientApi) Delete(c *gin.Context) {
    var params request.DeleteClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode := clientService.DeleteClient(params.Ids)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
// Update
//
//    @Tags        Client
//    @Summary    更新客户
//    @Produce    application/json
//    @Param        object    body        request.UpdateClient    true    "查询参数"
//    @Success    200        {object}    contextx.Response{}
//    @Router        /api/client/update [put]
func (cli *ClientApi) Update(c *gin.Context) {
    var params request.UpdateClient
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    errCode, client := checkClientParams(params.Client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    // check id
    if params.Id == 0 {
        ctx.Fail(ecode.InvalidParams)
        return
    }
    client.Id = params.Id
    errCode = clientService.UpdateClient(client)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.Ok()
}
// List
//
//    @Tags        Client
//    @Summary    客户列表
//    @Produce    application/json
//    @Param        object    body        request.GetClientList    true    "参数"
//    @Success    200        {object}    contextx.Response{data=response.ClientResponse}
//    @Router        /api/client/list [post]
func (cli *ClientApi) List(c *gin.Context) {
    var params request.GetClientList
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    clients, total, errCode := clientService.GetClientList(params.Page, params.PageSize, params.SearchMap)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
    ctx.OkWithDetailed(response.ClientResponse{
        List:  clients,
        Count: int(total),
    })
}