From 6aa75c2a266a2522ae713b13dc702b5ad0a08f87 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 24 十月 2023 13:50:23 +0800 Subject: [PATCH] 编码规则需求功能开发 --- model/request/masterOrder.go | 17 model/request/salesDetails.go | 39 docs/swagger.yaml | 87 +-- api/v1/salesReturn.go | 18 model/request/serviceOrder.go | 58 +- model/request/contract.go | 19 api/v1/salesRefund.go | 18 api/v1/salesLeads.go | 16 model/util.go | 2 model/request/salesReturn.go | 2 model/subOrder.go | 34 + model/salesReturn.go | 32 + model/salesLeads.go | 33 + api/v1/masterOrder.go | 18 model/request/saleChance.go | 64 +- api/v1/code.go | 63 ++ docs/docs.go | 132 +--- model/followRecord.go | 39 + constvar/const.go | 32 model/serviceOrder.go | 32 + model/request/salesRefund.go | 2 api/v1/serviceFollowup.go | 17 model/request/quotation.go | 26 api/v1/client.go | 23 model/contract.go | 34 + model/request/subOrder.go | 14 api/v1/contract.go | 18 api/v1/quotation.go | 18 model/masterOrder.go | 33 + model/serviceFollowup.go | 32 + model/request/serviceFollowup.go | 30 api/v1/salesDetails.go | 19 model/client.go | 25 model/request/followRecord.go | 33 model/request/salesLeads.go | 22 api/v1/subOrder.go | 17 model/saleChance.go | 18 model/request/client.go | 35 model/quotation.go | 33 + api/v1/serviceOrder.go | 17 docs/swagger.json | 132 +--- model/serviceContract.go | 34 + api/v1/saleChance.go | 27 model/salesDetails.go | 25 api/v1/serviceContract.go | 42 - model/request/serviceContract.go | 40 model/salesRefund.go | 32 + router/index.go | 3 api/v1/followRecord.go | 17 49 files changed, 969 insertions(+), 604 deletions(-) diff --git a/api/v1/client.go b/api/v1/client.go index 37016eb..bca5872 100644 --- a/api/v1/client.go +++ b/api/v1/client.go @@ -41,25 +41,20 @@ return } - //CreatorId, b := c.Get("claims") - //if !b { - // ctx.Fail(ecode.JWTParseErr) - // return - //} - // - //client.CreatorId = CreatorId.(int) + count, err := model.NewClientSearch(nil).SetNumber(params.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 - } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(client.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewClientSearch(nil).SetId(client.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/code.go b/api/v1/code.go index bb8ae8b..2514e44 100644 --- a/api/v1/code.go +++ b/api/v1/code.go @@ -2,6 +2,8 @@ import ( "aps_crm/conf" + "aps_crm/constvar" + "aps_crm/model" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" @@ -71,3 +73,64 @@ Count: list.Total, }) } + +// GetAutoCode +// +// @Tags 缂栫爜 +// @Summary 鑾峰彇鑷姩缂栫爜 +// @Produce application/json +// @Param object body code.CodeStandard true "鍙傛暟" +// @Success 200 {object} response.ListResponse +// +// @Router /api/code/getAutoCode [post] +func (ca *CodeApi) GetAutoCode(c *gin.Context) { + var params code.CodeStandard + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + var ( + id = 0 + err error + ) + switch constvar.CodeStandardType(params.Type) { + case constvar.CodeStandardTypeSaleKey: + id, err = model.NewSaleChanceSearch().MaxAutoIncr() + case constvar.CodeStandardTypeSaleLead: + id, err = model.NewSalesLeadsSearch(nil).MaxAutoIncr() + case constvar.CodeStandardTypeCustom: + id, err = model.NewClientSearch(nil).MaxAutoIncr() + case constvar.CodeStandardTypeFollowRecord: + id, err = model.NewFollowRecordSearch().MaxAutoIncr() + case constvar.CodeStandardTypeQuotation: + id, err = model.NewQuotationSearch(nil).MaxAutoIncr() + case constvar.CodeStandardTypeSaleTotalOrder: + id, err = model.NewMasterOrderSearch().MaxAutoIncr() + case constvar.CodeStandardTypeSaleSuborder: + id, err = model.NewSubOrderSearch(nil).MaxAutoIncr() + case constvar.CodeStandardTypeSaleDetail: + id, err = model.NewSalesDetailsSearch().MaxAutoIncr() + case constvar.CodeStandardTypeSaleReturnGoods: + id, err = model.NewSalesReturnSearch().MaxAutoIncr() + case constvar.CodeStandardTypeSaleRefund: + id, err = model.NewSalesRefundSearch().MaxAutoIncr() + case constvar.CodeStandardTypeContract: + id, err = model.NewContractSearch().MaxAutoIncr() + case constvar.CodeStandardTypeServerContract: + id, err = model.NewServiceContractSearch().MaxAutoIncr() + case constvar.CodeStandardTypeCustomServer: + id, err = model.NewServiceOrderSearch().MaxAutoIncr() + case constvar.CodeStandardTypeServerFollow: + id, err = model.NewServiceFollowupSearch().MaxAutoIncr() + default: + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜瑙勫垯涓嶅瓨鍦�") + return + } + if err != nil { + logx.Errorf("GetAutoCode err: %v", err.Error()) + ctx.FailWithMsg(ecode.UnknownErr, "鑾峰彇鏈�澶у�煎け璐�") + return + } + autoCode := model.GetAutoCode(id, ¶ms) + ctx.OkWithDetailed(autoCode) +} diff --git a/api/v1/contract.go b/api/v1/contract.go index 8041742..a2cc756 100644 --- a/api/v1/contract.go +++ b/api/v1/contract.go @@ -35,6 +35,16 @@ return } + count, err := model.NewContractSearch().SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if contract.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -46,14 +56,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(contract.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewContractSearch().SetId(contract.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/followRecord.go b/api/v1/followRecord.go index d64b85a..1fe90dd 100644 --- a/api/v1/followRecord.go +++ b/api/v1/followRecord.go @@ -36,6 +36,16 @@ return } + count, err := model.NewFollowRecordSearch().SetNumber(followRecord.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if followRecord.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -47,13 +57,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - if params.FollowRecord.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(followRecord.Id, ¶ms.FollowRecord.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewFollowRecordSearch().SetId(followRecord.Id).UpdateMap(m) } ctx.Ok() diff --git a/api/v1/masterOrder.go b/api/v1/masterOrder.go index 373078f..af2fb9d 100644 --- a/api/v1/masterOrder.go +++ b/api/v1/masterOrder.go @@ -34,6 +34,16 @@ return } + count, err := model.NewMasterOrderSearch().SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if masterOrder.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -45,14 +55,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(masterOrder.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewMasterOrderSearch().SetId(masterOrder.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/quotation.go b/api/v1/quotation.go index 7beeb3b..3fd3552 100644 --- a/api/v1/quotation.go +++ b/api/v1/quotation.go @@ -34,6 +34,16 @@ return } + count, err := model.NewQuotationSearch(nil).SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if quotation.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -45,14 +55,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(quotation.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewQuotationSearch(nil).SetId(quotation.Id).Updates(m) } ctx.Ok() diff --git a/api/v1/saleChance.go b/api/v1/saleChance.go index 445b3c7..73bcdb0 100644 --- a/api/v1/saleChance.go +++ b/api/v1/saleChance.go @@ -33,16 +33,15 @@ ctx.Fail(errCode) return } - if params.CodeRule.Method != 1 { - count, err := model.NewSaleChanceSearch().SetNumber(saleChance.Number).Count() - if err != nil { - ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") - return - } - if count > 0 { - ctx.FailWithMsg(ecode.UnknownErr, "閿�鍞満浼氱紪鐮佸凡瀛樺湪") - return - } + + count, err := model.NewSaleChanceSearch().SetNumber(saleChance.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "閿�鍞満浼氱紪鐮佸凡瀛樺湪") + return } if saleChance.MemberId == 0 { @@ -56,14 +55,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(saleChance.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSaleChanceSearch().SetId(saleChance.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go index 350e9c2..f5c69eb 100644 --- a/api/v1/salesDetails.go +++ b/api/v1/salesDetails.go @@ -35,6 +35,16 @@ return } + count, err := model.NewSalesDetailsSearch().SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if salesDetails.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -46,14 +56,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(salesDetails.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSalesDetailsSearch().SetId(salesDetails.Id).UpdateByMap(m) } ctx.OkWithDetailed(salesDetails) @@ -156,6 +158,7 @@ salesDetailsModel.LogisticNumber = salesDetails.LogisticNumber salesDetailsModel.LogisticCost = salesDetails.LogisticCost salesDetailsModel.CodeStandID = salesDetails.CodeStandID + salesDetailsModel.DeliverType = salesDetails.DeliverType return ecode.OK, salesDetailsModel } diff --git a/api/v1/salesLeads.go b/api/v1/salesLeads.go index e35a85d..25e1692 100644 --- a/api/v1/salesLeads.go +++ b/api/v1/salesLeads.go @@ -40,18 +40,20 @@ ctx.Fail(errCode) return } + count, err := model.NewSalesLeadsSearch(nil).SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } errCode = salesLeadsService.AddSalesLeads(&salesLeads) if errCode != ecode.OK { ctx.Fail(errCode) return - } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(salesLeads.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSalesLeadsSearch(nil).SetId(salesLeads.Id).UpdateMap(m) } ctx.Ok() diff --git a/api/v1/salesRefund.go b/api/v1/salesRefund.go index cbce386..2c30b99 100644 --- a/api/v1/salesRefund.go +++ b/api/v1/salesRefund.go @@ -36,6 +36,16 @@ return } + count, err := model.NewSalesRefundSearch().SetNumber(salesRefund.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if salesRefund.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -47,14 +57,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.SalesRefund.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(salesRefund.Id, ¶ms.SalesRefund.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSalesRefundSearch().SetId(salesRefund.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/salesReturn.go b/api/v1/salesReturn.go index bf1fdbd..4e21782 100644 --- a/api/v1/salesReturn.go +++ b/api/v1/salesReturn.go @@ -37,6 +37,16 @@ return } + count, err := model.NewSalesReturnSearch().SetNumber(salesReturn.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if salesReturn.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -48,14 +58,6 @@ if errCode != ecode.OK { ctx.Fail(errCode) return - } - - if params.SalesReturn.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(salesReturn.Id, ¶ms.SalesReturn.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSalesReturnSearch().SetId(salesReturn.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/serviceContract.go b/api/v1/serviceContract.go index d6b13c1..1edad01 100644 --- a/api/v1/serviceContract.go +++ b/api/v1/serviceContract.go @@ -35,6 +35,16 @@ return } + 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 { @@ -48,40 +58,8 @@ return } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(serviceContract.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewServiceContractSearch().SetId(serviceContract.Id).UpdateByMap(m) - } - ctx.Ok() } - -//// Delete -//// -//// @Tags ServiceContract -//// @Summary 鍒犻櫎鏈嶅姟鍚堝悓 -//// @Produce application/json -//// @Param object body request.DeleteServiceContract true "鏌ヨ鍙傛暟" -//// @Success 200 {object} contextx.Response{} -//// @Router /api/serviceContract/delete [delete] -//func (s *ServiceContractApi) Delete(c *gin.Context) { -// var params request.DeleteServiceContract -// ctx, ok := contextx.NewContext(c, ¶ms) -// if !ok { -// return -// } -// -// errCode := serviceContractService.DeleteServiceContract(params.Ids) -// if errCode != ecode.OK { -// ctx.Fail(errCode) -// return -// } -// -// ctx.Ok() -//} // BatchDelete // @Tags ServiceContract diff --git a/api/v1/serviceFollowup.go b/api/v1/serviceFollowup.go index 39af767..d457ead 100644 --- a/api/v1/serviceFollowup.go +++ b/api/v1/serviceFollowup.go @@ -40,17 +40,20 @@ return } + count, err := model.NewServiceFollowupSearch().SetNumber(serviceFollowup.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + errCode = serviceFollowupService.AddServiceFollowup(&serviceFollowup) if errCode != ecode.OK { ctx.Fail(errCode) return - } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(serviceFollowup.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewServiceFollowupSearch().SetId(serviceFollowup.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/serviceOrder.go b/api/v1/serviceOrder.go index faef2d6..b2bd4f1 100644 --- a/api/v1/serviceOrder.go +++ b/api/v1/serviceOrder.go @@ -42,17 +42,20 @@ return } + count, err := model.NewServiceOrderSearch().SetNumber(serviceOrder.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + errCode := service.NewServiceOrderService().AddServiceOrder(serviceOrder) if errCode != ecode.OK { ctx.Fail(errCode) return - } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(serviceOrder.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "service_number": autoCode, - } - _ = model.NewServiceOrderSearch().SetId(serviceOrder.Id).UpdateByMap(m) } ctx.Ok() diff --git a/api/v1/subOrder.go b/api/v1/subOrder.go index b4595ee..188e036 100644 --- a/api/v1/subOrder.go +++ b/api/v1/subOrder.go @@ -34,6 +34,16 @@ return } + count, err := model.NewSubOrderSearch(nil).SetNumber(params.Number).Count() + if err != nil { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜楠岃瘉澶辫触") + return + } + if count > 0 { + ctx.FailWithMsg(ecode.UnknownErr, "缂栫爜宸插瓨鍦�") + return + } + if subOrder.MemberId == 0 { userInfo := utils.GetUserInfo(c) if userInfo.UserType == constvar.UserTypeSub { @@ -47,13 +57,6 @@ return } - if params.CodeRule.Method == 1 { - autoCode := model.GetAutoCode(subOrder.Id, ¶ms.CodeRule) - m := map[string]interface{}{ - "number": autoCode, - } - _ = model.NewSubOrderSearch(nil).SetId(subOrder.Id).UpdateByMap(m) - } ctx.Ok() } diff --git a/constvar/const.go b/constvar/const.go index 98cfd24..cd33794 100644 --- a/constvar/const.go +++ b/constvar/const.go @@ -137,24 +137,26 @@ type CodeStandardType string const ( - CodeStandardTypeSaleLead CodeStandardType = "閿�鍞嚎绱㈢紪鐮�" - CodeStandardTypeCustom CodeStandardType = "瀹㈡埛缂栫爜" - CodeStandardTypeContact CodeStandardType = "鑱旂郴浜虹紪鐮�" - CodeStandardTypeFollowRecord CodeStandardType = "璺熻繘璁板綍缂栫爜" - CodeStandardTypeSaleKey CodeStandardType = "閿�鍞満浼氱紪鐮�" - CodeStandardTypeQuotation CodeStandardType = "鎶ヤ环缂栫爜" - CodeStandardTypeSaleTotalOrder CodeStandardType = "閿�鍞�诲崟缂栫爜" - CodeStandardTypeSaleSuborder CodeStandardType = "閿�鍞瓙鍗曠紪鐮�" - CodeStandardTypeSaleRefund CodeStandardType = "閿�鍞��娆剧紪鐮�" - CodeStandardTypeContract CodeStandardType = "鍚堝悓缂栫爜" - CodeStandardTypeServerContract CodeStandardType = "鏈嶅姟鍚堝悓缂栫爜" - CodeStandardTypeServerFollow CodeStandardType = "鏈嶅姟鍥炶缂栫爜" + CodeStandardTypeSaleLead CodeStandardType = "閿�鍞嚎绱㈢紪鐮�" + CodeStandardTypeCustom CodeStandardType = "瀹㈡埛缂栫爜" + CodeStandardTypeFollowRecord CodeStandardType = "璺熻繘璁板綍缂栫爜" + CodeStandardTypeSaleKey CodeStandardType = "閿�鍞満浼氱紪鐮�" + CodeStandardTypeQuotation CodeStandardType = "鎶ヤ环缂栫爜" + CodeStandardTypeSaleTotalOrder CodeStandardType = "閿�鍞�诲崟缂栫爜" + CodeStandardTypeSaleSuborder CodeStandardType = "閿�鍞瓙鍗曠紪鐮�" + CodeStandardTypeSaleRefund CodeStandardType = "閿�鍞��娆剧紪鐮�" + CodeStandardTypeContract CodeStandardType = "鍚堝悓缂栫爜" + CodeStandardTypeServerContract CodeStandardType = "鏈嶅姟鍚堝悓缂栫爜" + CodeStandardTypeServerFollow CodeStandardType = "鏈嶅姟鍥炶缂栫爜" + CodeStandardTypeCustomServer CodeStandardType = "瀹㈡埛鏈嶅姟缂栫爜" + CodeStandardTypeSaleInvoice CodeStandardType = "閿�鍞彂绁ㄧ紪鐮�" + CodeStandardTypeSaleDetail CodeStandardType = "閿�鍞槑缁嗙紪鐮�" + CodeStandardTypeSaleReturnGoods CodeStandardType = "閿�鍞��璐х紪鐮�" ) func (t CodeStandardType) Valid() bool { if t != CodeStandardTypeSaleLead && t != CodeStandardTypeCustom && - t != CodeStandardTypeContact && t != CodeStandardTypeFollowRecord && t != CodeStandardTypeSaleKey && t != CodeStandardTypeQuotation && @@ -163,6 +165,10 @@ t != CodeStandardTypeSaleRefund && t != CodeStandardTypeContract && t != CodeStandardTypeServerContract && + t != CodeStandardTypeCustomServer && + t != CodeStandardTypeSaleInvoice && + t != CodeStandardTypeSaleDetail && + t != CodeStandardTypeSaleReturnGoods && t != CodeStandardTypeServerFollow { return false } diff --git a/docs/docs.go b/docs/docs.go index c49c09a..b6d87f1 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1199,6 +1199,36 @@ } } }, + "/api/code/getAutoCode": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "缂栫爜" + ], + "summary": "鑾峰彇鑷姩缂栫爜", + "parameters": [ + { + "description": "鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/code.CodeStandard" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.ListResponse" + } + } + } + } + }, "/api/code/getCodeList": { "get": { "produces": [ @@ -12048,8 +12078,16 @@ "solutions": { "type": "string" }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/model.Status" + } + ] + }, "status_id": { - "$ref": "#/definitions/model.Status" + "type": "integer" }, "threats": { "type": "string" @@ -12133,6 +12171,9 @@ }, "creatorName": { "type": "string" + }, + "deliverType": { + "type": "integer" }, "deliveryDate": { "type": "string" @@ -13296,9 +13337,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -13502,9 +13540,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -13773,9 +13808,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -13895,9 +13927,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14133,9 +14162,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14266,15 +14292,16 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" }, "conditions": { "type": "string" + }, + "deliverType": { + "description": "浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣", + "type": "integer" }, "deliveryDate": { "type": "string" @@ -14325,9 +14352,6 @@ "properties": { "city_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14452,9 +14476,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14563,9 +14584,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14660,9 +14678,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14727,9 +14742,6 @@ "clientId": { "description": "瀹㈡埛id", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14885,9 +14897,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -15265,9 +15274,6 @@ }, "client_status_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "type": "string" @@ -15846,15 +15852,16 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" }, "conditions": { "type": "string" + }, + "deliverType": { + "description": "浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣", + "type": "integer" }, "deliveryDate": { "type": "string" @@ -15914,9 +15921,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -15965,9 +15969,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16167,9 +16168,6 @@ "client_type_id": { "description": "瀹㈡埛绫诲瀷ID", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16459,9 +16457,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16865,9 +16860,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17048,9 +17040,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -17413,9 +17402,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17589,9 +17575,6 @@ "properties": { "city_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -17846,9 +17829,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17978,9 +17958,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -18076,9 +18053,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -18146,9 +18120,6 @@ "clientId": { "description": "瀹㈡埛id", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -18343,9 +18314,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", diff --git a/docs/swagger.json b/docs/swagger.json index 6b3e9f0..29ed80e 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -1187,6 +1187,36 @@ } } }, + "/api/code/getAutoCode": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "缂栫爜" + ], + "summary": "鑾峰彇鑷姩缂栫爜", + "parameters": [ + { + "description": "鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/code.CodeStandard" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/response.ListResponse" + } + } + } + } + }, "/api/code/getCodeList": { "get": { "produces": [ @@ -12036,8 +12066,16 @@ "solutions": { "type": "string" }, + "status": { + "description": "鐘舵��", + "allOf": [ + { + "$ref": "#/definitions/model.Status" + } + ] + }, "status_id": { - "$ref": "#/definitions/model.Status" + "type": "integer" }, "threats": { "type": "string" @@ -12121,6 +12159,9 @@ }, "creatorName": { "type": "string" + }, + "deliverType": { + "type": "integer" }, "deliveryDate": { "type": "string" @@ -13284,9 +13325,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -13490,9 +13528,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -13761,9 +13796,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -13883,9 +13915,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14121,9 +14150,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14254,15 +14280,16 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" }, "conditions": { "type": "string" + }, + "deliverType": { + "description": "浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣", + "type": "integer" }, "deliveryDate": { "type": "string" @@ -14313,9 +14340,6 @@ "properties": { "city_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14440,9 +14464,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14551,9 +14572,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14648,9 +14666,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -14715,9 +14730,6 @@ "clientId": { "description": "瀹㈡埛id", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -14873,9 +14885,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -15253,9 +15262,6 @@ }, "client_status_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "type": "string" @@ -15834,15 +15840,16 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" }, "conditions": { "type": "string" + }, + "deliverType": { + "description": "浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣", + "type": "integer" }, "deliveryDate": { "type": "string" @@ -15902,9 +15909,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -15953,9 +15957,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16155,9 +16156,6 @@ "client_type_id": { "description": "瀹㈡埛绫诲瀷ID", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16447,9 +16445,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -16853,9 +16848,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17036,9 +17028,6 @@ "properties": { "client_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -17401,9 +17390,6 @@ "client_id": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17577,9 +17563,6 @@ "properties": { "city_id": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -17834,9 +17817,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -17966,9 +17946,6 @@ "description": "瀹㈡埛绫诲瀷ID", "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -18064,9 +18041,6 @@ "clientId": { "type": "integer" }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" - }, "codeStandID": { "description": "缂栫爜id", "type": "string" @@ -18134,9 +18108,6 @@ "clientId": { "description": "瀹㈡埛id", "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", @@ -18331,9 +18302,6 @@ "properties": { "clientId": { "type": "integer" - }, - "codeRule": { - "$ref": "#/definitions/code.CodeStandard" }, "codeStandID": { "description": "缂栫爜id", diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 6cdd1f3..1e7b9cb 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -1373,8 +1373,12 @@ type: integer solutions: type: string + status: + allOf: + - $ref: '#/definitions/model.Status' + description: 鐘舵�� status_id: - $ref: '#/definitions/model.Status' + type: integer threats: type: string whether_established: @@ -1431,6 +1435,8 @@ type: integer creatorName: type: string + deliverType: + type: integer deliveryDate: type: string id: @@ -2212,8 +2218,6 @@ client_type_id: description: 瀹㈡埛绫诲瀷ID type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2360,8 +2364,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2538,8 +2540,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2618,8 +2618,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2773,8 +2771,6 @@ type: integer client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2861,13 +2857,14 @@ type: string clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string conditions: type: string + deliverType: + description: 浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣 + type: integer deliveryDate: type: string logisticCompany: @@ -2901,8 +2898,6 @@ properties: city_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -2984,8 +2979,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -3061,8 +3054,6 @@ client_type_id: description: 瀹㈡埛绫诲瀷ID type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -3131,8 +3122,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -3178,8 +3167,6 @@ clientId: description: 瀹㈡埛id type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -3289,8 +3276,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -3546,8 +3531,6 @@ type: integer client_status_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: type: string contact_id: @@ -3966,13 +3949,14 @@ type: string clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string conditions: type: string + deliverType: + description: 浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣 + type: integer deliveryDate: type: string logisticCompany: @@ -4009,8 +3993,6 @@ type: integer clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -4046,8 +4028,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -4183,8 +4163,6 @@ client_type_id: description: 瀹㈡埛绫诲瀷ID type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -4387,8 +4365,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -4657,8 +4633,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -4778,8 +4752,6 @@ properties: client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5016,8 +4988,6 @@ type: integer client_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5135,8 +5105,6 @@ properties: city_id: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5305,8 +5273,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5396,8 +5362,6 @@ client_type_id: description: 瀹㈡埛绫诲瀷ID type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5466,8 +5430,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5515,8 +5477,6 @@ clientId: description: 瀹㈡埛id type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -5652,8 +5612,6 @@ properties: clientId: type: integer - codeRule: - $ref: '#/definitions/code.CodeStandard' codeStandID: description: 缂栫爜id type: string @@ -7025,6 +6983,25 @@ summary: 鏇存柊瀹㈡埛绫诲瀷 tags: - ClientType + /api/code/getAutoCode: + post: + parameters: + - description: 鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/code.CodeStandard' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/response.ListResponse' + summary: 鑾峰彇鑷姩缂栫爜 + tags: + - 缂栫爜 /api/code/getCodeList: get: parameters: diff --git a/model/client.go b/model/client.go index ca7509a..a9a5e1c 100644 --- a/model/client.go +++ b/model/client.go @@ -3,6 +3,7 @@ import ( "aps_crm/constvar" "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" "time" ) @@ -196,6 +197,30 @@ return db.Updates(data).Error } +func (slf *ClientSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ClientSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *ClientSearch) SetPage(page, size int) *ClientSearch { slf.PageNum, slf.PageSize = page, size return slf diff --git a/model/contract.go b/model/contract.go index 93519c3..4617805 100644 --- a/model/contract.go +++ b/model/contract.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -50,6 +51,9 @@ if slf.Id != 0 { db = db.Where("id = ?", slf.Id) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -123,6 +127,30 @@ return records, total, err } +func (slf *ContractSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ContractSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *ContractSearch) SetId(id int) *ContractSearch { slf.Id = id return slf @@ -146,6 +174,12 @@ slf.Orm = slf.Orm.Where("id in (?)", ids) return slf } + +func (slf *ContractSearch) SetNumber(number string) *ContractSearch { + slf.Number = number + return slf +} + func (slf *ContractSearch) UpdateByMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error diff --git a/model/followRecord.go b/model/followRecord.go index 58bbb30..afc27cb 100644 --- a/model/followRecord.go +++ b/model/followRecord.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -61,6 +62,9 @@ } if slf.ClientId != 0 { db = db.Where("client_id = ?", slf.ClientId) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -130,12 +134,6 @@ return records, total, err } -func (slf *FollowRecordSearch) Count() (int64, error) { - var count int64 - err := slf.build().Count(&count).Error - return count, err -} - func (slf *FollowRecordSearch) Page(page, pageSize int) ([]*FollowRecord, int64, error) { var records = make([]*FollowRecord, 0) var count int64 @@ -160,6 +158,30 @@ func (slf *FollowRecordSearch) Delete() error { var db = slf.build() return db.Delete(&slf.FollowRecord).Error +} + +func (slf *FollowRecordSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *FollowRecordSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil } func (slf *FollowRecordSearch) SetId(id int) *FollowRecordSearch { @@ -199,3 +221,8 @@ slf.Orm = tx return slf } + +func (slf *FollowRecordSearch) SetNumber(number string) *FollowRecordSearch { + slf.Number = number + return slf +} diff --git a/model/masterOrder.go b/model/masterOrder.go index ac02f01..112d16f 100644 --- a/model/masterOrder.go +++ b/model/masterOrder.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -47,6 +48,9 @@ var db = slf.Orm.Model(&MasterOrder{}) if slf.Id != 0 { db = db.Where("id = ?", slf.Id) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -112,6 +116,30 @@ return records, total, err } +func (slf *MasterOrderSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *MasterOrderSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *MasterOrderSearch) SetId(id int) *MasterOrderSearch { slf.Id = id return slf @@ -136,6 +164,11 @@ return slf } +func (slf *MasterOrderSearch) SetNumber(number string) *MasterOrderSearch { + slf.Number = number + return slf +} + func (slf *MasterOrderSearch) UpdateByMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error diff --git a/model/quotation.go b/model/quotation.go index 4aff38e..969d34f 100644 --- a/model/quotation.go +++ b/model/quotation.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -58,6 +59,9 @@ var db = slf.Orm.Model(&Quotation{}) if slf.Id != 0 { db = db.Where("id = ?", slf.Id) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -128,6 +132,30 @@ return records, total, err } +func (slf *QuotationSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *QuotationSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *QuotationSearch) SetId(id int) *QuotationSearch { slf.Id = id return slf @@ -152,6 +180,11 @@ slf.SearchMap = searchMap return slf } + +func (slf *QuotationSearch) SetNumber(number string) *QuotationSearch { + slf.Number = number + return slf +} func (slf *QuotationSearch) SetIds(ids []int) *QuotationSearch { slf.Orm = slf.Orm.Where("id in (?)", ids) return slf diff --git a/model/request/client.go b/model/request/client.go index 08b32ea..089f98e 100644 --- a/model/request/client.go +++ b/model/request/client.go @@ -1,29 +1,26 @@ package request -import "aps_crm/proto/code" - type AddClient struct { Client } type Client struct { - Name string `json:"name"` // 鍏徃鍚嶇О - Number string `json:"number"` // 鍏徃缂栧彿 - ClientStatusId int `json:"client_status_id"` // 瀹㈡埛鐘舵�両D - ClientTypeId int `json:"client_type_id"` // 瀹㈡埛绫诲瀷ID - ClientOriginId int `json:"client_origin_id"` // 瀹㈡埛鏉ユ簮ID - ClientLevelId int `json:"client_level_id"` // 瀹㈡埛绛夌骇ID - MemberId int `json:"member_id"` // 閿�鍞礋璐d汉ID - ServiceMemberId int `json:"service_member_id"` // 鏈嶅姟璐熻矗浜篒D - DetailAddress string `json:"detail_address"` // 璇︾粏鍦板潃 - Remark string `json:"remark"` // 澶囨敞 - NextVisitTime string `json:"next_visit_time"` // 涓嬫鍥炶鏃堕棿 - LatestServiceTime string `json:"latest_service_time"` // 鏈�鏅氭湇鍔℃椂闂� - Contact Contact `json:"contact"` - SalesLeadsId int `json:"sales_leads_id"` // 閿�鍞嚎绱D - ContactId int `json:"contact_id"` // 鑱旂郴浜篒D - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + Name string `json:"name"` // 鍏徃鍚嶇О + Number string `json:"number"` // 鍏徃缂栧彿 + ClientStatusId int `json:"client_status_id"` // 瀹㈡埛鐘舵�両D + ClientTypeId int `json:"client_type_id"` // 瀹㈡埛绫诲瀷ID + ClientOriginId int `json:"client_origin_id"` // 瀹㈡埛鏉ユ簮ID + ClientLevelId int `json:"client_level_id"` // 瀹㈡埛绛夌骇ID + MemberId int `json:"member_id"` // 閿�鍞礋璐d汉ID + ServiceMemberId int `json:"service_member_id"` // 鏈嶅姟璐熻矗浜篒D + DetailAddress string `json:"detail_address"` // 璇︾粏鍦板潃 + Remark string `json:"remark"` // 澶囨敞 + NextVisitTime string `json:"next_visit_time"` // 涓嬫鍥炶鏃堕棿 + LatestServiceTime string `json:"latest_service_time"` // 鏈�鏅氭湇鍔℃椂闂� + Contact Contact `json:"contact"` + SalesLeadsId int `json:"sales_leads_id"` // 閿�鍞嚎绱D + ContactId int `json:"contact_id"` // 鑱旂郴浜篒D + CodeStandID string `json:"codeStandID"` //缂栫爜id Address Business } diff --git a/model/request/contract.go b/model/request/contract.go index 8285425..9a939f8 100644 --- a/model/request/contract.go +++ b/model/request/contract.go @@ -1,21 +1,18 @@ package request -import "aps_crm/proto/code" - type AddContract struct { Contract } type Contract struct { - ContractName string `json:"contractName"` //鍚堝悓鍚嶇О - ClientId int `json:"client_id"` - MemberId int `json:"member_id"` - Number string `json:"number"` - QuotationId int `json:"quotation_id"` - StatusId int `json:"status_id"` - File string `json:"file"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ContractName string `json:"contractName"` //鍚堝悓鍚嶇О + ClientId int `json:"client_id"` + MemberId int `json:"member_id"` + Number string `json:"number"` + QuotationId int `json:"quotation_id"` + StatusId int `json:"status_id"` + File string `json:"file"` + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateContract struct { diff --git a/model/request/followRecord.go b/model/request/followRecord.go index e84169d..ddd82ae 100644 --- a/model/request/followRecord.go +++ b/model/request/followRecord.go @@ -1,28 +1,25 @@ package request -import "aps_crm/proto/code" - type AddFollowRecord struct { FollowRecord FollowRecord `json:"follow_record" binding:"required"` } type FollowRecord struct { - ClientId int `json:"client_id" gorm:"column:client_id;type:int(11);comment:瀹㈡埛id"` - ClientStatusId int `json:"client_status_id" gorm:"column:client_status_id;type:int(11);comment:瀹㈡埛鐘舵�乮d"` - MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:璺熻繘浜篿d"` - Number string `json:"number" gorm:"column:number;type:varchar(255);comment:璺熻繘缂栧彿"` - ContactId int `json:"contact_id" gorm:"column:contact_id;type:int(11);comment:鑱旂郴浜篿d"` - Topic string `json:"topic" gorm:"column:topic;type:varchar(255);comment:璺熻繘涓婚"` - Record string `json:"record" gorm:"column:record;type:MEDIUMTEXT;comment:璺熻繘璁板綍"` - SaleChanceId int `json:"sale_chance_id" gorm:"column:sale_chance_id;type:int(11);comment:閿�鍞満浼歩d"` - SalesLeadsId int `json:"sales_leads_id" gorm:"column:sales_leads_id;type:int(11);comment:閿�鍞嚎绱d"` - ContactInformationId int `json:"contact_information_id" gorm:"column:contact_information_id;type:int(11);comment:鑱旂郴鏂瑰紡id"` - FollowTime string `json:"follow_time" gorm:"column:follow_time;type:datetime;comment:璺熻繘鏃堕棿"` - NextFollowTime string `json:"next_follow_time" gorm:"column:next_follow_time;type:datetime;comment:涓嬫璺熻繘鏃堕棿"` - Purpose string `json:"purpose" gorm:"column:purpose;type:varchar(255);comment:璺熻繘鐩殑"` - Content string `json:"content" gorm:"column:content;type:varchar(255);comment:璺熻繘鍐呭"` - CodeStandID string `json:"codeStandID" gorm:"column:code_stand_id;type:varchar(255);comment:缂栫爜id"` - CodeRule code.CodeStandard `json:"codeRule"` + ClientId int `json:"client_id" gorm:"column:client_id;type:int(11);comment:瀹㈡埛id"` + ClientStatusId int `json:"client_status_id" gorm:"column:client_status_id;type:int(11);comment:瀹㈡埛鐘舵�乮d"` + MemberId int `json:"member_id" gorm:"column:member_id;type:int(11);comment:璺熻繘浜篿d"` + Number string `json:"number" gorm:"column:number;type:varchar(255);comment:璺熻繘缂栧彿"` + ContactId int `json:"contact_id" gorm:"column:contact_id;type:int(11);comment:鑱旂郴浜篿d"` + Topic string `json:"topic" gorm:"column:topic;type:varchar(255);comment:璺熻繘涓婚"` + Record string `json:"record" gorm:"column:record;type:MEDIUMTEXT;comment:璺熻繘璁板綍"` + SaleChanceId int `json:"sale_chance_id" gorm:"column:sale_chance_id;type:int(11);comment:閿�鍞満浼歩d"` + SalesLeadsId int `json:"sales_leads_id" gorm:"column:sales_leads_id;type:int(11);comment:閿�鍞嚎绱d"` + ContactInformationId int `json:"contact_information_id" gorm:"column:contact_information_id;type:int(11);comment:鑱旂郴鏂瑰紡id"` + FollowTime string `json:"follow_time" gorm:"column:follow_time;type:datetime;comment:璺熻繘鏃堕棿"` + NextFollowTime string `json:"next_follow_time" gorm:"column:next_follow_time;type:datetime;comment:涓嬫璺熻繘鏃堕棿"` + Purpose string `json:"purpose" gorm:"column:purpose;type:varchar(255);comment:璺熻繘鐩殑"` + Content string `json:"content" gorm:"column:content;type:varchar(255);comment:璺熻繘鍐呭"` + CodeStandID string `json:"codeStandID" gorm:"column:code_stand_id;type:varchar(255);comment:缂栫爜id"` } type UpdateFollowRecord struct { diff --git a/model/request/masterOrder.go b/model/request/masterOrder.go index 00317c8..22f8393 100644 --- a/model/request/masterOrder.go +++ b/model/request/masterOrder.go @@ -1,20 +1,17 @@ package request -import "aps_crm/proto/code" - type AddMasterOrder struct { MasterOrder } type MasterOrder struct { - Number string `json:"number"` - ClientId int `json:"client_id"` - MemberId int `json:"member_id"` - StartTime string `json:"start_time"` - EndTime string `json:"end_time"` - Money float64 `json:"money"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + Number string `json:"number"` + ClientId int `json:"client_id"` + MemberId int `json:"member_id"` + StartTime string `json:"start_time"` + EndTime string `json:"end_time"` + Money float64 `json:"money"` + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateMasterOrder struct { diff --git a/model/request/quotation.go b/model/request/quotation.go index a0d1425..87ea612 100644 --- a/model/request/quotation.go +++ b/model/request/quotation.go @@ -2,7 +2,6 @@ import ( "aps_crm/model" - "aps_crm/proto/code" ) type AddQuotation struct { @@ -10,19 +9,18 @@ } type Quotation struct { - QuotationName string `json:"quotationName"` //鎶ヤ环鍗曞悕绉� - ClientId int `json:"client_id"` - Number string `json:"number"` - QuotationStatusId int `json:"quotation_status_id"` - ValidityDate string `json:"validity_date"` - ContactId int `json:"contact_id"` - MemberId int `json:"member_id"` - SaleChanceId int `json:"sale_chance_id"` - Conditions string `json:"conditions"` - File string `json:"file"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` - Products []model.Product `json:"products"` + QuotationName string `json:"quotationName"` //鎶ヤ环鍗曞悕绉� + ClientId int `json:"client_id"` + Number string `json:"number"` + QuotationStatusId int `json:"quotation_status_id"` + ValidityDate string `json:"validity_date"` + ContactId int `json:"contact_id"` + MemberId int `json:"member_id"` + SaleChanceId int `json:"sale_chance_id"` + Conditions string `json:"conditions"` + File string `json:"file"` + CodeStandID string `json:"codeStandID"` //缂栫爜id + Products []model.Product `json:"products"` } type UpdateQuotation struct { diff --git a/model/request/saleChance.go b/model/request/saleChance.go index 34085de..05c8aa6 100644 --- a/model/request/saleChance.go +++ b/model/request/saleChance.go @@ -2,7 +2,6 @@ import ( "aps_crm/model" - "aps_crm/proto/code" ) type AddSaleChance struct { @@ -10,38 +9,37 @@ } type SaleChance struct { - Name string `json:"name"` - ClientId int `json:"client_id"` - Number string `json:"number"` - ContactId int `json:"contact_id"` - SalesSourcesId int `json:"sales_sources_id"` - SaleTypeId int `json:"sale_type_id"` - SaleStageId int `json:"sale_stage_id"` - MemberId int `json:"member_id"` - RegularCustomersId int `json:"regular_customers_id"` - Competitors string `json:"competitors"` - Possibilities int `json:"possibilities"` - Budget float64 `json:"budget"` - ProjectedAmount float64 `json:"projected_amount"` - Currency int `json:"currency"` - ExpectedTime string `json:"expected_time"` - StatusId int `json:"status_id"` - PainPoints string `json:"pain_points"` - WhetherEstablished string `json:"whether_established"` - CapitalBudget string `json:"capital_budget"` - KeyMaker string `json:"key_maker"` - KeyFactors string `json:"key_factors"` - Process string `json:"process"` - Solutions string `json:"solutions"` - Advantages string `json:"advantages"` - Disadvantages string `json:"disadvantages"` - Opportunities string `json:"opportunities"` - Threats string `json:"threats"` - Remark string `json:"remark"` - DetailAddress string `json:"detail_address"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` - Products []*model.Product `json:"products" gorm:"many2many:SaleChance_Product;"` + Name string `json:"name"` + ClientId int `json:"client_id"` + Number string `json:"number"` + ContactId int `json:"contact_id"` + SalesSourcesId int `json:"sales_sources_id"` + SaleTypeId int `json:"sale_type_id"` + SaleStageId int `json:"sale_stage_id"` + MemberId int `json:"member_id"` + RegularCustomersId int `json:"regular_customers_id"` + Competitors string `json:"competitors"` + Possibilities int `json:"possibilities"` + Budget float64 `json:"budget"` + ProjectedAmount float64 `json:"projected_amount"` + Currency int `json:"currency"` + ExpectedTime string `json:"expected_time"` + StatusId int `json:"status_id"` + PainPoints string `json:"pain_points"` + WhetherEstablished string `json:"whether_established"` + CapitalBudget string `json:"capital_budget"` + KeyMaker string `json:"key_maker"` + KeyFactors string `json:"key_factors"` + Process string `json:"process"` + Solutions string `json:"solutions"` + Advantages string `json:"advantages"` + Disadvantages string `json:"disadvantages"` + Opportunities string `json:"opportunities"` + Threats string `json:"threats"` + Remark string `json:"remark"` + DetailAddress string `json:"detail_address"` + CodeStandID string `json:"codeStandID"` //缂栫爜id + Products []*model.Product `json:"products" gorm:"many2many:SaleChance_Product;"` Address } diff --git a/model/request/salesDetails.go b/model/request/salesDetails.go index 8acf6a8..08e425c 100644 --- a/model/request/salesDetails.go +++ b/model/request/salesDetails.go @@ -3,7 +3,6 @@ import ( "aps_crm/constvar" "aps_crm/model" - "aps_crm/proto/code" ) type AddSalesDetails struct { @@ -11,25 +10,25 @@ } type SalesDetails struct { - ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"` - Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"` - SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"` - SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"` - SignTime string `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"` - MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"` - DeliveryDate string `json:"deliveryDate" gorm:"column:delivery_date;type:datetime;comment:浜よ揣鏃ユ湡"` - WechatOrderStatusId int `json:"wechatOrderStatusId" gorm:"column:wechat_order_status_id;type:int;comment:寰俊璁㈠崟鐘舵�乮d"` - Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"` - Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"` - Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"` - Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"` - Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"` - Products []*model.Product `json:"products" gorm:"many2many:sales_details_product;"` - LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"` - LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"` - LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ClientId int `json:"clientId" gorm:"column:client_id;type:int;comment:瀹㈡埛id"` + Number string `json:"number" gorm:"column:number;type:varchar(255);comment:閿�鍞瓙鍗曞彿"` + SaleChanceId int `json:"saleChanceId" gorm:"column:sale_chance_id;type:int;comment:閿�鍞満浼歩d"` + SaleType int `json:"saleType" gorm:"column:sale_type;type:int;comment:閿�鍞被鍨�"` + SignTime string `json:"signTime" gorm:"column:sign_time;type:datetime;comment:绛惧崟鏃堕棿"` + MemberId int `json:"memberId" gorm:"column:member_id;type:int;comment:璐熻矗浜篿d"` + DeliveryDate string `json:"deliveryDate" gorm:"column:delivery_date;type:datetime;comment:浜よ揣鏃ユ湡"` + WechatOrderStatusId int `json:"wechatOrderStatusId" gorm:"column:wechat_order_status_id;type:int;comment:寰俊璁㈠崟鐘舵�乮d"` + Address string `json:"address" gorm:"column:address;type:varchar(255);comment:鍦板潃"` + Phone string `json:"phone" gorm:"column:phone;type:varchar(255);comment:鐢佃瘽"` + Addressee string `json:"addressee" gorm:"column:addressee;type:varchar(255);comment:鏀朵欢浜�"` + Conditions string `json:"conditions" gorm:"column:conditions;type:text;comment:鏉′欢"` + Remark string `json:"remark" gorm:"column:remark;type:text;comment:澶囨敞"` + Products []*model.Product `json:"products" gorm:"many2many:sales_details_product;"` + LogisticCompany string `json:"logisticCompany" gorm:"column:logistic_company;type:varchar(255);comment:鐗╂祦鍏徃"` + LogisticNumber string `json:"logisticNumber" gorm:"column:logistic_number;type:varchar(255);comment:鐗╂祦鍗曞彿"` + LogisticCost float64 `json:"logisticCost" gorm:"column:logistic_cost;type:decimal(10,2);comment:鐗╂祦璐圭敤"` + CodeStandID string `json:"codeStandID"` //缂栫爜id + DeliverType int `json:"deliverType"` //浜や粯绫诲瀷:1.涓�娆″彂璐�,2.澶氭鍙戣揣 } type UpdateSalesDetails struct { diff --git a/model/request/salesLeads.go b/model/request/salesLeads.go index 821be06..3c4de2f 100644 --- a/model/request/salesLeads.go +++ b/model/request/salesLeads.go @@ -2,7 +2,6 @@ import ( "aps_crm/constvar" - "aps_crm/proto/code" ) type AddSalesLeads struct { @@ -10,17 +9,16 @@ } type SalesLeads struct { - Name string `json:"name"` // 鍏徃鍚嶇О - Number string `json:"number"` // 閿�鍞嚎绱㈢紪鍙� - ContactName string `json:"contact_name"` // 鑱旂郴浜哄鍚� - ContactPhone string `json:"contact_phone"` // 鑱旂郴浜虹數璇� - ContactPosition string `json:"contact_position"` // 鑱旂郴浜鸿亴浣� - SalesSourcesId int `json:"sales_sources_id"` // 鍟嗘満鏉ユ簮ID - MemberId int `json:"member_id"` // 閿�鍞礋璐d汉ID - Desc string `json:"desc"` // 澶囨敞 - DetailAddress string `json:"detail_address"` // 璇︾粏鍦板潃 - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + Name string `json:"name"` // 鍏徃鍚嶇О + Number string `json:"number"` // 閿�鍞嚎绱㈢紪鍙� + ContactName string `json:"contact_name"` // 鑱旂郴浜哄鍚� + ContactPhone string `json:"contact_phone"` // 鑱旂郴浜虹數璇� + ContactPosition string `json:"contact_position"` // 鑱旂郴浜鸿亴浣� + SalesSourcesId int `json:"sales_sources_id"` // 鍟嗘満鏉ユ簮ID + MemberId int `json:"member_id"` // 閿�鍞礋璐d汉ID + Desc string `json:"desc"` // 澶囨敞 + DetailAddress string `json:"detail_address"` // 璇︾粏鍦板潃 + CodeStandID string `json:"codeStandID"` //缂栫爜id Address } diff --git a/model/request/salesRefund.go b/model/request/salesRefund.go index 4cfb4ee..ad162bb 100644 --- a/model/request/salesRefund.go +++ b/model/request/salesRefund.go @@ -3,7 +3,6 @@ import ( "aps_crm/constvar" "aps_crm/model" - "aps_crm/proto/code" ) type AddSalesRefundRequest struct { @@ -23,7 +22,6 @@ Reason string `json:"reason"` Products []*model.Product `json:"products"` CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` } type UpdateSalesRefundRequest struct { diff --git a/model/request/salesReturn.go b/model/request/salesReturn.go index 3c85395..46d706d 100644 --- a/model/request/salesReturn.go +++ b/model/request/salesReturn.go @@ -3,7 +3,6 @@ import ( "aps_crm/constvar" "aps_crm/model" - "aps_crm/proto/code" ) type AddSalesReturnRequest struct { @@ -24,7 +23,6 @@ Reason string `json:"reason" gorm:"column:reason;type:varchar(255);comment:閫�璐у師鍥�"` //閫�璐у師鍥� Products []*model.Product `json:"products" gorm:"many2many:salesReturn_product;"` //閫�璐т骇鍝� CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` } type UpdateSalesReturnRequest struct { diff --git a/model/request/serviceContract.go b/model/request/serviceContract.go index a8ea3b5..f3cb2fe 100644 --- a/model/request/serviceContract.go +++ b/model/request/serviceContract.go @@ -3,7 +3,6 @@ import ( "aps_crm/constvar" "aps_crm/model" - "aps_crm/proto/code" ) type AddServiceContract struct { @@ -11,26 +10,25 @@ } type ServiceContract struct { - ClientId int `json:"clientId"` - Number string `json:"number"` - MemberId int `json:"memberId" binding:"required"` - ContactId int `json:"contactId"` - SaleChanceId int `json:"saleChanceId"` - SalesDetailsId int `json:"salesDetailsId"` - QuotationId int `json:"quotationId"` - TypeId int `json:"typeId"` - SignTime string `json:"signTime" binding:"datetime=2006-01-02"` - StartTime string `json:"startTime"` - EndTime string `json:"endTime"` - StatusId int `json:"statusId"` - ServiceTimes int `json:"serviceTimes"` - Terms string `json:"terms"` - Remark string `json:"remark"` - Products []*model.Product `json:"products"` - ServiceContractTypeId int `json:"serviceContractTypeId"` - ServiceContractStatusId int `json:"serviceContractStatusId"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ClientId int `json:"clientId"` + Number string `json:"number"` + MemberId int `json:"memberId" binding:"required"` + ContactId int `json:"contactId"` + SaleChanceId int `json:"saleChanceId"` + SalesDetailsId int `json:"salesDetailsId"` + QuotationId int `json:"quotationId"` + TypeId int `json:"typeId"` + SignTime string `json:"signTime" binding:"datetime=2006-01-02"` + StartTime string `json:"startTime"` + EndTime string `json:"endTime"` + StatusId int `json:"statusId"` + ServiceTimes int `json:"serviceTimes"` + Terms string `json:"terms"` + Remark string `json:"remark"` + Products []*model.Product `json:"products"` + ServiceContractTypeId int `json:"serviceContractTypeId"` + ServiceContractStatusId int `json:"serviceContractStatusId"` + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateServiceContract struct { diff --git a/model/request/serviceFollowup.go b/model/request/serviceFollowup.go index b5628e8..06b86e1 100644 --- a/model/request/serviceFollowup.go +++ b/model/request/serviceFollowup.go @@ -2,7 +2,6 @@ import ( "aps_crm/constvar" - "aps_crm/proto/code" ) type AddServiceFollowup struct { @@ -10,21 +9,20 @@ } type ServiceFollowup struct { - ClientId int `json:"clientId"` - Number string `json:"number"` - ContactId int `json:"contactId"` - ServiceOrderId int `json:"serviceOrderId"` - MemberId int `json:"memberId"` - PlanId int `json:"planId"` - Satisfaction int `json:"satisfaction"` - TimelyRate int `json:"timelyRate"` - SolveRate int `json:"solveRate"` - IsVisit int `json:"isVisit"` - OldMemberId int `json:"oldMemberId"` - Remark string `json:"remark"` - File string `json:"file"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ClientId int `json:"clientId"` + Number string `json:"number"` + ContactId int `json:"contactId"` + ServiceOrderId int `json:"serviceOrderId"` + MemberId int `json:"memberId"` + PlanId int `json:"planId"` + Satisfaction int `json:"satisfaction"` + TimelyRate int `json:"timelyRate"` + SolveRate int `json:"solveRate"` + IsVisit int `json:"isVisit"` + OldMemberId int `json:"oldMemberId"` + Remark string `json:"remark"` + File string `json:"file"` + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateServiceFollowup struct { diff --git a/model/request/serviceOrder.go b/model/request/serviceOrder.go index 3b59202..a9641dc 100644 --- a/model/request/serviceOrder.go +++ b/model/request/serviceOrder.go @@ -2,39 +2,37 @@ import ( "aps_crm/constvar" - "aps_crm/proto/code" ) type AddServiceOrder struct { - ServiceNumber string `gorm:"service_number" json:"serviceNumber"` // 鏈嶅姟鍗曠紪鍙� - ClientId int `gorm:"client_id" json:"clientId"` // 瀹㈡埛id - ServiceContractId int `gorm:"service_contract_id" json:"serviceContractId"` // 鍚堝悓id - SalesDetailsId int `gorm:"sales_details_id" json:"salesDetailsId"` // 閿�鍞鍗昳d - Subject string `gorm:"subject" json:"subject"` // 涓婚 - ProductTypeName string `json:"productTypeName"` // 浜у搧鍒嗙被鍚嶇О - ProductName string `json:"productName"` // 浜у搧鍚嶇О - ServiceTypeId int `gorm:"service_type_id" json:"serviceTypeId"` // 鏈嶅姟鏂瑰紡id - ServiceManId int `gorm:"service_man_id" json:"serviceManId"` // 鏈嶅姟浜哄憳 - ContactId int `gorm:"linkman_id" json:"contactId"` // 鑱旂郴浜篿d - Address string `gorm:"address" json:"address"` // 涓婇棬鍦板潃 - PriorityLevelId int `gorm:"priority_level_id" json:"priorityLevelId"` // 浼樺厛绾у埆id - AppointmentTime string `gorm:"appointment_time" json:"appointmentTime"` // 棰勭害涓婇棬鏃堕棿 - SaleChanceId int `gorm:"sale_leads" json:"saleChanceId"` // 閿�鍞満浼歩d - FaultTypeId int `gorm:"severity_id" json:"faultTypeId"` // 鏁呴殰绫诲埆id - SeverityId int `gorm:"severity_id" json:"severity"` // 涓ラ噸绋嬪害id - ServiceOrderStatusId int `gorm:"column:service_order_status_id;type:int;not null;default:0;comment:鏈嶅姟鍗曠姸鎬乮d" json:"serviceOrderStatusId"` // 澶勭悊鐘舵�� - ExpectTime string `gorm:"expect_time" json:"expectTime"` // 甯屾湜澶勭悊鏃堕棿 - RealTime string `gorm:"real_time" json:"realTime"` // 瀹為檯澶勭悊鏃堕棿 - CarFare float64 `gorm:"car_fare" json:"carFare"` // 浜ら�氳垂 - ChargeAmount float64 `gorm:"charge_amount" json:"chargeAmount"` // 鏀惰垂閲戦 - TimeSpentId int `gorm:"time_spent_id" json:"timeSpentId"` // 鑺辫垂鏃堕棿 - FaqId int `gorm:"problem_id" json:"faqId"` // 甯歌闂id - ProblemDesc string `gorm:"problem_desc" json:"problemDesc"` // 闂鎻忚堪 - Solution string `gorm:"solution" json:"solution"` // 瑙e喅鏂规硶 - SolutionRemark string `gorm:"solution_remark" json:"solutionRemark"` // 鍐呴儴澶囨敞 - Remark string `gorm:"remark" json:"remark"` // 澶囨敞 - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ServiceNumber string `gorm:"service_number" json:"serviceNumber"` // 鏈嶅姟鍗曠紪鍙� + ClientId int `gorm:"client_id" json:"clientId"` // 瀹㈡埛id + ServiceContractId int `gorm:"service_contract_id" json:"serviceContractId"` // 鍚堝悓id + SalesDetailsId int `gorm:"sales_details_id" json:"salesDetailsId"` // 閿�鍞鍗昳d + Subject string `gorm:"subject" json:"subject"` // 涓婚 + ProductTypeName string `json:"productTypeName"` // 浜у搧鍒嗙被鍚嶇О + ProductName string `json:"productName"` // 浜у搧鍚嶇О + ServiceTypeId int `gorm:"service_type_id" json:"serviceTypeId"` // 鏈嶅姟鏂瑰紡id + ServiceManId int `gorm:"service_man_id" json:"serviceManId"` // 鏈嶅姟浜哄憳 + ContactId int `gorm:"linkman_id" json:"contactId"` // 鑱旂郴浜篿d + Address string `gorm:"address" json:"address"` // 涓婇棬鍦板潃 + PriorityLevelId int `gorm:"priority_level_id" json:"priorityLevelId"` // 浼樺厛绾у埆id + AppointmentTime string `gorm:"appointment_time" json:"appointmentTime"` // 棰勭害涓婇棬鏃堕棿 + SaleChanceId int `gorm:"sale_leads" json:"saleChanceId"` // 閿�鍞満浼歩d + FaultTypeId int `gorm:"severity_id" json:"faultTypeId"` // 鏁呴殰绫诲埆id + SeverityId int `gorm:"severity_id" json:"severity"` // 涓ラ噸绋嬪害id + ServiceOrderStatusId int `gorm:"column:service_order_status_id;type:int;not null;default:0;comment:鏈嶅姟鍗曠姸鎬乮d" json:"serviceOrderStatusId"` // 澶勭悊鐘舵�� + ExpectTime string `gorm:"expect_time" json:"expectTime"` // 甯屾湜澶勭悊鏃堕棿 + RealTime string `gorm:"real_time" json:"realTime"` // 瀹為檯澶勭悊鏃堕棿 + CarFare float64 `gorm:"car_fare" json:"carFare"` // 浜ら�氳垂 + ChargeAmount float64 `gorm:"charge_amount" json:"chargeAmount"` // 鏀惰垂閲戦 + TimeSpentId int `gorm:"time_spent_id" json:"timeSpentId"` // 鑺辫垂鏃堕棿 + FaqId int `gorm:"problem_id" json:"faqId"` // 甯歌闂id + ProblemDesc string `gorm:"problem_desc" json:"problemDesc"` // 闂鎻忚堪 + Solution string `gorm:"solution" json:"solution"` // 瑙e喅鏂规硶 + SolutionRemark string `gorm:"solution_remark" json:"solutionRemark"` // 鍐呴儴澶囨敞 + Remark string `gorm:"remark" json:"remark"` // 澶囨敞 + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateServiceOrder struct { diff --git a/model/request/subOrder.go b/model/request/subOrder.go index 556f4e0..7db7ff3 100644 --- a/model/request/subOrder.go +++ b/model/request/subOrder.go @@ -2,7 +2,6 @@ import ( "aps_crm/model" - "aps_crm/proto/code" ) type AddSubOrder struct { @@ -10,13 +9,12 @@ } type SubOrder struct { - ClientId int `json:"clientId"` - MasterOrderId int `json:"masterOrderId"` - Number string `json:"number"` - MemberId int `json:"memberId"` - Product []model.Product `json:"product"` - CodeStandID string `json:"codeStandID"` //缂栫爜id - CodeRule code.CodeStandard `json:"codeRule"` + ClientId int `json:"clientId"` + MasterOrderId int `json:"masterOrderId"` + Number string `json:"number"` + MemberId int `json:"memberId"` + Product []model.Product `json:"product"` + CodeStandID string `json:"codeStandID"` //缂栫爜id } type UpdateSubOrder struct { diff --git a/model/saleChance.go b/model/saleChance.go index f136914..5f0f37c 100644 --- a/model/saleChance.go +++ b/model/saleChance.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -213,3 +214,20 @@ var db = slf.build() return db.Updates(data).Error } + +func (slf *SaleChanceSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} diff --git a/model/salesDetails.go b/model/salesDetails.go index b82e761..bf371e3 100644 --- a/model/salesDetails.go +++ b/model/salesDetails.go @@ -40,6 +40,7 @@ AmountUnInvoiced decimal.Decimal `gorm:"column:amount_not_invoiced;type:decimal(12,2);comment:鏈紑绁ㄩ噾棰�" json:"amountUnInvoiced"` // 鏈紑绁ㄩ噾棰� AmountTotal decimal.Decimal `gorm:"column:amount_total;type:decimal(12,2);comment:浠风◣鍚堣" json:"amountTotal"` // 浠风◣鍚堣 CodeStandID string `json:"codeStandID" gorm:"column:code_stand_id;type:varchar(255);comment:缂栫爜id"` + DeliverType int `json:"deliverType" gorm:"column:deliver_type;type:int;comment:浜や粯绫诲瀷(1.涓�娆″彂璐�,2.澶氭鍙戣揣)"` CrmModel } @@ -133,6 +134,30 @@ return db.Updates(record).Error } +func (slf *SalesDetailsSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *SalesDetailsSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *SalesDetailsSearch) SetId(id int) *SalesDetailsSearch { slf.Id = id return slf diff --git a/model/salesLeads.go b/model/salesLeads.go index f215ce4..4439bdb 100644 --- a/model/salesLeads.go +++ b/model/salesLeads.go @@ -3,6 +3,7 @@ import ( "aps_crm/constvar" "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -61,6 +62,9 @@ } if slf.Name != "" { db = db.Where("name = ?", slf.Name) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -141,6 +145,30 @@ return records, total, err } +func (slf *SalesLeadsSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *SalesLeadsSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *SalesLeadsSearch) SetId(id int) *SalesLeadsSearch { slf.Id = id return slf @@ -176,6 +204,11 @@ return slf } +func (slf *SalesLeadsSearch) SetNumber(number string) *SalesLeadsSearch { + slf.Number = number + return slf +} + func (slf *SalesLeadsSearch) SetSearchMap(data map[string]interface{}) *SalesLeadsSearch { slf.SearchMap = data return slf diff --git a/model/salesRefund.go b/model/salesRefund.go index d4aadd8..9155fb5 100644 --- a/model/salesRefund.go +++ b/model/salesRefund.go @@ -116,6 +116,9 @@ if len(slf.MemberIds) > 0 { db = db.Where("sales_refund.member_id in ?", slf.MemberIds) } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) + } return db } @@ -169,6 +172,30 @@ return records, total, err } +func (slf *SalesRefundSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *SalesRefundSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *SalesRefundSearch) SetId(id int) *SalesRefundSearch { slf.Id = id return slf @@ -214,6 +241,11 @@ return slf } +func (slf *SalesRefundSearch) SetNumber(number string) *SalesRefundSearch { + slf.Number = number + return slf +} + func (slf *SalesRefundSearch) UpdateByMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error diff --git a/model/salesReturn.go b/model/salesReturn.go index df99ba7..126b29a 100644 --- a/model/salesReturn.go +++ b/model/salesReturn.go @@ -114,6 +114,9 @@ if len(slf.MemberIds) > 0 { db = db.Where("sales_return.member_id in ?", slf.MemberIds) } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) + } return db } @@ -168,6 +171,30 @@ return records, err } +func (slf *SalesReturnSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *SalesReturnSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *SalesReturnSearch) SetId(id int) *SalesReturnSearch { slf.Id = id return slf @@ -217,6 +244,11 @@ return slf } +func (slf *SalesReturnSearch) SetNumber(number string) *SalesReturnSearch { + slf.Number = number + return slf +} + func (slf *SalesReturnSearch) UpdateByMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error diff --git a/model/serviceContract.go b/model/serviceContract.go index 8c8db4e..61d8e5f 100644 --- a/model/serviceContract.go +++ b/model/serviceContract.go @@ -145,6 +145,9 @@ if slf.ContactId != 0 { db = db.Where("contact_id = ?", slf.ContactId) } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) + } return db } @@ -180,10 +183,39 @@ db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) } - err := db.Order("id desc").Order("id desc").Find(&records).Error + err := db.Order("id desc").Find(&records).Error return records, total, err } +func (slf *ServiceContractSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ServiceContractSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + +func (slf *ServiceContractSearch) SetNumber(number string) *ServiceContractSearch { + slf.Number = number + return slf +} + func (slf *ServiceContractSearch) SetId(id int) *ServiceContractSearch { slf.Id = id return slf diff --git a/model/serviceFollowup.go b/model/serviceFollowup.go index 0b62891..65ffa14 100644 --- a/model/serviceFollowup.go +++ b/model/serviceFollowup.go @@ -101,6 +101,9 @@ if len(slf.MemberIds) > 0 { db = db.Where("service_followup.member_id in ?", slf.MemberIds) } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) + } return db } @@ -142,6 +145,35 @@ return records, total, err } +func (slf *ServiceFollowupSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ServiceFollowupSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + +func (slf *ServiceFollowupSearch) SetNumber(number string) *ServiceFollowupSearch { + slf.Number = number + return slf +} + func (slf *ServiceFollowupSearch) SetId(id int) *ServiceFollowupSearch { slf.Id = id return slf diff --git a/model/serviceOrder.go b/model/serviceOrder.go index f593b5c..3440357 100644 --- a/model/serviceOrder.go +++ b/model/serviceOrder.go @@ -134,6 +134,9 @@ if len(slf.ServiceManIds) > 0 { db = db.Where("service_man_id in ?", slf.ServiceManIds) } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) + } return db } @@ -216,6 +219,11 @@ return slf } +func (slf *ServiceOrderSearch) SetNumber(number string) *ServiceOrderSearch { + slf.Number = number + return slf +} + func (slf *ServiceOrderSearch) First() (*ServiceOrder, error) { var db = slf.build() var record = new(ServiceOrder) @@ -260,3 +268,27 @@ var db = slf.build() return db.Updates(data).Error } + +func (slf *ServiceOrderSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *ServiceOrderSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} diff --git a/model/subOrder.go b/model/subOrder.go index 0182500..930e672 100644 --- a/model/subOrder.go +++ b/model/subOrder.go @@ -2,6 +2,7 @@ import ( "aps_crm/pkg/mysqlx" + "fmt" "gorm.io/gorm" ) @@ -49,6 +50,9 @@ if slf.Id != 0 { db = db.Where("id = ?", slf.Id) + } + if slf.Number != "" { + db = db.Where("number = ?", slf.Number) } if len(slf.SearchMap) > 0 { @@ -120,6 +124,30 @@ return records, total, err } +func (slf *SubOrderSearch) Count() (int64, error) { + var db = slf.build() + var total int64 + err := db.Count(&total).Error + return total, err +} + +func (slf *SubOrderSearch) MaxAutoIncr() (int, error) { + type Result struct { + Max int + } + + var ( + result Result + db = slf.build() + ) + + err := db.Select("MAX(id) as max").Scan(&result).Error + if err != nil { + return result.Max, fmt.Errorf("max err: %v", err) + } + return result.Max, nil +} + func (slf *SubOrderSearch) SetId(id int) *SubOrderSearch { slf.Id = id return slf @@ -143,6 +171,12 @@ slf.Orm = slf.Orm.Where("id in (?)", ids) return slf } + +func (slf *SubOrderSearch) SetNumber(number string) *SubOrderSearch { + slf.Number = number + return slf +} + func (slf *SubOrderSearch) UpdateByMap(data map[string]interface{}) error { var db = slf.build() return db.Updates(data).Error diff --git a/model/util.go b/model/util.go index 8ac7156..6c914a8 100644 --- a/model/util.go +++ b/model/util.go @@ -38,7 +38,7 @@ } else { // 鍥哄畾鍊� prefixValue = codeStandard.AutoRule.PrefixValue } - strMaxAutoIncr := strconv.Itoa(id) + strMaxAutoIncr := strconv.Itoa(id + 1) count := int(codeStandard.AutoRule.AutoLength) - len(strMaxAutoIncr) for i := 0; i < count; i++ { strMaxAutoIncr = "0" + strMaxAutoIncr diff --git a/router/index.go b/router/index.go index 47df283..94aae0a 100644 --- a/router/index.go +++ b/router/index.go @@ -197,7 +197,8 @@ codeGroup := PrivateGroup.Group("code") codeApi := v1.CodeApi{} { - codeGroup.GET("getCodeList", codeApi.GetCodeList) //鑾峰彇缂栫爜鍒楄〃 + codeGroup.GET("getCodeList", codeApi.GetCodeList) //鑾峰彇缂栫爜鍒楄〃 + codeGroup.POST("getAutoCode", codeApi.GetAutoCode) //鑾峰彇缂栫爜鍒楄〃 } return Router } -- Gitblit v1.8.0