fix
wangpengfei
2023-08-18 9a7e0a7da01a9f9625ceaca0c61a59c540c6438f
api/v1/client.go
@@ -1,202 +1,235 @@
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
   }
   //CreatorId, b := c.Get("claims")
   //if !b {
   //   ctx.Fail(ecode.JWTParseErr)
   //   return
   //}
   //
   //client.CreatorId = CreatorId.(int)
   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, params.ContactId)
   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),
   })
}
// CheckName
//
//   @Tags      Client
//   @Summary   检查客户名称是否重复
//   @Produce   application/json
//   @Param      object   body      request.CheckClientName   true   "参数"
//   @Success   200      {object}   contextx.Response{}
//   @Router      /api/client/checkName [post]
func (cli *ClientApi) CheckName(c *gin.Context) {
   var params request.CheckClientName
   ctx, ok := contextx.NewContext(c, &params)
   if !ok {
      return
   }
   errCode := clientService.CheckName(params.Name)
   if errCode != ecode.OK {
      ctx.Fail(errCode)
      return
   }
   ctx.Ok()
}