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/serviceContract.go | 124 ++++++++++++++++-------------------------
1 files changed, 49 insertions(+), 75 deletions(-)
diff --git a/api/v1/serviceContract.go b/api/v1/serviceContract.go
index cd5e4f6..e5b97d9 100644
--- a/api/v1/serviceContract.go
+++ b/api/v1/serviceContract.go
@@ -1,13 +1,15 @@
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/pkg/structx"
+ "aps_crm/utils"
"github.com/gin-gonic/gin"
- "strconv"
)
type ServiceContractApi struct{}
@@ -26,13 +28,31 @@
if !ok {
return
}
- errCode, serviceContract := checkServiceContractParams(params.ServiceContract)
- if errCode != ecode.OK {
- ctx.Fail(errCode)
+
+ serviceContract := new(model.ServiceContract)
+ if err := structx.AssignTo(params, serviceContract); err != nil {
+ ctx.Fail(ecode.ParamsErr)
return
}
- errCode = serviceContractService.AddServiceContract(&serviceContract)
+ count, err := model.NewServiceContractSearch().SetNumber(params.Number).Count()
+ if err != nil {
+ ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触")
+ return
+ }
+ if count > 0 {
+ ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�")
+ return
+ }
+
+ if params.MemberId == 0 {
+ userInfo := utils.GetUserInfo(c)
+ if userInfo.UserType == constvar.UserTypeSub {
+ params.MemberId = userInfo.CrmUserId
+ }
+ }
+
+ errCode := serviceContractService.AddServiceContract(serviceContract)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
@@ -41,22 +61,21 @@
ctx.Ok()
}
-// Delete
-//
-// @Tags ServiceContract
-// @Summary 鍒犻櫎鏈嶅姟鍚堝悓
-// @Produce application/json
-// @Param id path int true "鏌ヨ鍙傛暟"
-// @Success 200 {object} contextx.Response{}
-// @Router /api/serviceContract/delete/{id} [delete]
-func (s *ServiceContractApi) Delete(c *gin.Context) {
- ctx, ok := contextx.NewContext(c, nil)
+// BatchDelete
+// @Tags ServiceContract
+// @Summary 鎵归噺鍒犻櫎鏈嶅姟鍚堝悓
+// @Produce application/json
+// @Param object body request.CommonIds true "鍙傛暟"
+// @Success 200 {object} contextx.Response{}
+// @Router /api/serviceContract/delete [delete]
+func (s *ServiceContractApi) BatchDelete(c *gin.Context) {
+ var params request.CommonIds
+ ctx, ok := contextx.NewContext(c, ¶ms)
if !ok {
return
}
- id, _ := strconv.Atoi(c.Param("id"))
- errCode := serviceContractService.DeleteServiceContract(id)
+ errCode := serviceContractService.BatchDeleteServiceContract(params.Ids)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
@@ -80,15 +99,15 @@
return
}
- errCode, serviceContract := checkServiceContractParams(params.ServiceContract)
- if errCode != ecode.OK {
- ctx.Fail(errCode)
+ serviceContract := new(model.ServiceContract)
+ if err := structx.AssignTo(params, serviceContract); err != nil {
+ ctx.Fail(ecode.ParamsErr)
return
}
serviceContract.Id = params.Id
- errCode = serviceContractService.UpdateServiceContract(&serviceContract)
+ errCode := serviceContractService.UpdateServiceContract(serviceContract)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
@@ -97,61 +116,10 @@
ctx.Ok()
}
-// check params
-func checkServiceContractParams(serviceContract request.ServiceContract) (errCode int, result model.ServiceContract) {
- //if serviceContract.SignTime == "" {
- // return ecode.InvalidParams, result
- //}
- //
- //if serviceContract.Number == "" {
- // return ecode.InvalidParams, result
- //}
- //
- //if serviceContract.MemberId <= 0 {
- // return ecode.InvalidParams, result
- //}
-
- t, err := checkTimeFormat(serviceContract.SignTime)
- if err != nil {
- return ecode.InvalidParams, result
- }
-
- result.SignTime = t
-
- t, err = checkTimeFormat(serviceContract.StartTime)
- if err != nil {
- return ecode.InvalidParams, result
- }
-
- result.StartTime = t
-
- t, err = checkTimeFormat(serviceContract.EndTime)
- if err != nil {
- return ecode.InvalidParams, result
- }
-
- result.EndTime = t
-
- result.Number = serviceContract.Number
- result.MemberId = serviceContract.MemberId
- result.Remark = serviceContract.Remark
- result.ClientId = serviceContract.ClientId
- result.ContactId = serviceContract.ContactId
- result.SaleChanceId = serviceContract.SaleChanceId
- result.QuotationId = serviceContract.QuotationId
- result.ServiceContractTypeId = serviceContract.TypeId
- result.ServiceContractStatusId = serviceContract.StatusId
- result.ServiceTimes = serviceContract.ServiceTimes
- result.Terms = serviceContract.Terms
- result.Products = serviceContract.Products
-
- return ecode.OK, result
-}
-
// List
//
-// @Tags ServiceContract
-// @Summary 鐢熸垚璁″垝鍒楄〃
+// @Tags ServiceContract
+// @Summary 鏈嶅姟鍚堝悓鍒楄〃
// @Produce application/json
// @Param object body request.GetServiceContractList true "鍙傛暟"
// @Success 200 {object} contextx.Response{data=response.ServiceContractsResponse}
@@ -163,7 +131,13 @@
return
}
- serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params.Page, params.PageSize, params.QueryClass, params.KeywordType, params.Keyword)
+ var memberIds []int
+ userInfo := utils.GetUserInfo(c)
+ if userInfo.UserType == constvar.UserTypeSub {
+ memberIds = userInfo.SubUserIds
+ }
+
+ serviceContracts, total, errCode := serviceContractService.GetServiceContractList(params, memberIds)
if errCode != ecode.OK {
ctx.Fail(errCode)
return
--
Gitblit v1.8.0