package v1 import ( "aps_crm/constvar" "aps_crm/model" "aps_crm/model/grpc_init" "aps_crm/model/request" "aps_crm/model/response" "aps_crm/pkg/contextx" "aps_crm/pkg/ecode" "aps_crm/pkg/logx" "aps_crm/proto/code" "github.com/gin-gonic/gin" "github.com/spf13/cast" ) type CodeApi struct{} //var ( // codeServiceConn *grpc.ClientConn //) // //func InitCodeServiceConn() { // var err error // codeServiceConn, err = grpc.Dial(conf.Conf.GrpcServiceAddr.Aps, grpc.WithTransportCredentials(insecure.NewCredentials())) // if err != nil { // logx.Errorf("grpc dial product service error: %v", err.Error()) // return // } //} // //func CloseCodeServiceConn() { // if codeServiceConn != nil { // codeServiceConn.Close() // } //} // GetCodeList // // @Tags 编码 // @Summary 获取编码列表 // @Produce application/json // @Param object query request.GetCodeList true "参数" // @Success 200 {object} response.ListResponse // // @Router /api/code/getCodeList [get] func (ca *CodeApi) GetCodeList(c *gin.Context) { var params request.GetCodeList ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return } params.CodeStandID = c.Query("codeStandID") params.Name = c.Query("name") params.Type = c.Query("type") client := code.NewCodeServiceClient(grpc_init.CrmApsGrpcServiceConn) list, err := client.GetCodeList(ctx.GetCtx(), &code.GetCodeListRequest{ Page: cast.ToInt32(params.Page), PageSize: cast.ToInt32(params.PageSize), CodeStandID: params.CodeStandID, Name: params.Name, Type: params.Type, }) if err != nil { logx.Errorf("GetCodeList err: %v", err.Error()) ctx.FailWithMsg(ecode.UnknownErr, "grpc调用错误") return } ctx.OkWithDetailed(response.ListResponse{ Data: list.List, 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() case constvar.CodeStandardTypeSaleInvoice: id, err = model.NewInvoiceSearch().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) }