From 18c42494735992c42d63c7858f5fdb31069d0342 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期四, 23 十一月 2023 20:11:31 +0800
Subject: [PATCH] 获取客户列表服务端
---
api/v1/client.go | 458 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 256 insertions(+), 202 deletions(-)
diff --git a/api/v1/client.go b/api/v1/client.go
index ae8c16e..ff33fad 100644
--- a/api/v1/client.go
+++ b/api/v1/client.go
@@ -1,202 +1,256 @@
-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, ¶ms)
- 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, ¶ms)
- 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, ¶ms)
- 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, ¶ms)
- 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/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"
+)
+
+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, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode, client := checkClientParams(params.Client)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ count, err := model.NewClientSearch(nil).SetNumber(client.Number).Count()
+ if err != nil {
+ ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触")
+ return
+ }
+ if count > 0 {
+ ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�")
+ 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
+ client.CodeStandID = params.CodeStandID
+
+ //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, ¶ms)
+ 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, ¶ms)
+ 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, ¶ms)
+ if !ok {
+ return
+ }
+
+ var isPublic bool
+ if params.SearchMap != nil && params.SearchMap["is_public"] != nil {
+ if v, ok := params.SearchMap["is_public"].(bool); ok {
+ isPublic = v
+ }
+ }
+ 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)
+ 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, ¶ms)
+ if !ok {
+ return
+ }
+
+ errCode := clientService.CheckName(params.Name)
+ if errCode != ecode.OK {
+ ctx.Fail(errCode)
+ return
+ }
+
+ ctx.Ok()
+}
--
Gitblit v1.8.0