Merge branch 'feat/order-domain' into 6-order-domain-service
正在显示
66 个修改的文件
包含
1420 行增加
和
326 行删除
document/partner01/schemas/companyAdmin.yaml
0 → 100644
| 1 | version: v1 | 1 | version: v1 |
| 2 | kind: Schema | 2 | kind: Schema |
| 3 | metadata: | 3 | metadata: |
| 4 | - name: goods | 4 | + name: good |
| 5 | description: 订单商品实体 | 5 | description: 订单商品实体 |
| 6 | attributes: | 6 | attributes: |
| 7 | - - ref: goodsId | 7 | + - ref: goodId |
| 8 | required: true | 8 | required: true |
| 9 | - - ref: goodsNum | 9 | + - ref: goodNum |
| 10 | required: true | 10 | required: true |
| 11 | - - ref: goodsDividend | 11 | + - ref: goodDividend |
| 12 | required: true | 12 | required: true |
| 13 | - - ref: goodsDividendStatus | 13 | + - ref: goodDividendStatus |
| 14 | required: true | 14 | required: true |
| 15 | - - ref: goodsName | 15 | + - ref: goodName |
| 16 | required: true | 16 | required: true |
| 17 | - - ref: goodsTotalPrice | 17 | + - ref: goodTotalPrice |
| 18 | required: true | 18 | required: true |
| 19 | - ref: remarks | 19 | - ref: remarks |
| 20 | required: true | 20 | required: true |
| 21 | - ref: orderNo | 21 | - ref: orderNo |
| 22 | required: true | 22 | required: true |
| 23 | - - name: goodsDetail | 23 | + - name: goodDetail |
| 24 | required: true | 24 | required: true |
| 25 | - ref: createAt | 25 | - ref: createAt |
| 26 | required: true | 26 | required: true |
| 1 | version: v1 | 1 | version: v1 |
| 2 | kind: Schema | 2 | kind: Schema |
| 3 | metadata: | 3 | metadata: |
| 4 | - name: goodsDetail | 4 | + name: goodDetail |
| 5 | description: 商品详情值对象 | 5 | description: 商品详情值对象 |
| 6 | attributes: | 6 | attributes: |
| 7 | - - ref: goodsDetailId | 7 | + - ref: goodDetailId |
| 8 | required: true | 8 | required: true |
| 9 | - ref: adjustedNum | 9 | - ref: adjustedNum |
| 10 | required: true | 10 | required: true |
| @@ -10,7 +10,7 @@ metadata: | @@ -10,7 +10,7 @@ metadata: | ||
| 10 | required: true | 10 | required: true |
| 11 | - ref: companyId | 11 | - ref: companyId |
| 12 | required: true | 12 | required: true |
| 13 | - - ref: partnerId | 13 | + - ref: userId |
| 14 | required: true | 14 | required: true |
| 15 | - ref: deliveryCode | 15 | - ref: deliveryCode |
| 16 | required: true | 16 | required: true |
document/partner01/schemas/partner.yaml
已删除
100644 → 0
| 1 | -version: v1 | ||
| 2 | -kind: Schema | ||
| 3 | -metadata: | ||
| 4 | - name: partner | ||
| 5 | - description: 合伙人实体 | ||
| 6 | - attributes: | ||
| 7 | - - ref: partnerId | ||
| 8 | - required: true | ||
| 9 | - - ref: cooperateTime | ||
| 10 | - required: true | ||
| 11 | - - ref: partnerCategory | ||
| 12 | - required: true | ||
| 13 | - - ref: partnerCategoryInfos | ||
| 14 | - required: true | ||
| 15 | - - ref: partnerInfo | ||
| 16 | - required: true | ||
| 17 | - - ref: salesman | ||
| 18 | - required: true | ||
| 19 | - - ref: status | ||
| 20 | - required: true |
| @@ -13,13 +13,11 @@ metadata: | @@ -13,13 +13,11 @@ metadata: | ||
| 13 | required: true | 13 | required: true |
| 14 | - ref: remarks | 14 | - ref: remarks |
| 15 | required: false | 15 | required: false |
| 16 | - - name: adminId | ||
| 17 | - description: 公司主管理员Id | ||
| 18 | - type: | ||
| 19 | - primitive: int64 | ||
| 20 | - result: | ||
| 21 | - - ref: count | 16 | + - ref: userAccount |
| 22 | required: true | 17 | required: true |
| 18 | + - ref: userName | ||
| 19 | + required: true | ||
| 20 | + result: | ||
| 23 | - name: company | 21 | - name: company |
| 24 | type: | 22 | type: |
| 25 | schema: company | 23 | schema: company |
| @@ -7,7 +7,9 @@ metadata: | @@ -7,7 +7,9 @@ metadata: | ||
| 7 | payload: | 7 | payload: |
| 8 | - ref: companyId | 8 | - ref: companyId |
| 9 | required: true | 9 | required: true |
| 10 | - - ref: userId | 10 | + - ref: userAccount |
| 11 | + required: true | ||
| 12 | + - ref: userName | ||
| 11 | required: true | 13 | required: true |
| 12 | result: | 14 | result: |
| 13 | - name: company | 15 | - name: company |
| @@ -15,10 +15,9 @@ metadata: | @@ -15,10 +15,9 @@ metadata: | ||
| 15 | required: false | 15 | required: false |
| 16 | - ref: remarks | 16 | - ref: remarks |
| 17 | required: false | 17 | required: false |
| 18 | - - name: adminId | ||
| 19 | - description: 公司主管理员Id | ||
| 20 | - type: | ||
| 21 | - primitive: int64 | 18 | + - ref: userAccount |
| 19 | + required: false | ||
| 20 | + - ref: userName | ||
| 22 | required: false | 21 | required: false |
| 23 | result: | 22 | result: |
| 24 | - name: company | 23 | - name: company |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ConvertCompanyStatusCommand struct { | ||
| 10 | + // 公司Id | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | + // 状态 1正常 2禁用 | ||
| 13 | + Status int64 `json:"status" valid:"Required"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (convertCompanyStatusCommand *ConvertCompanyStatusCommand) Valid(validation *validation.Validation) { | ||
| 17 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (convertCompanyStatusCommand *ConvertCompanyStatusCommand) ValidateCommand() error { | ||
| 21 | + valid := validation.Validation{} | ||
| 22 | + b, err := valid.Valid(convertCompanyStatusCommand) | ||
| 23 | + if err != nil { | ||
| 24 | + return err | ||
| 25 | + } | ||
| 26 | + if !b { | ||
| 27 | + for _, validErr := range valid.Errors { | ||
| 28 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + return nil | ||
| 32 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type CreateCompanyCommand struct { | ||
| 10 | + // 公司名称 | ||
| 11 | + Name string `json:"name" valid:"Required"` | ||
| 12 | + // 公司简称 | ||
| 13 | + Abbreviation string `json:"abbreviation" valid:"Required"` | ||
| 14 | + // 状态 1正常 2禁用 | ||
| 15 | + Status int64 `json:"status" valid:"Required"` | ||
| 16 | + // 备注 | ||
| 17 | + Remarks string `json:"remarks,omitempty"` | ||
| 18 | + // 公司主管理员账号 | ||
| 19 | + UserAccount string `json:"userAccount" valid:"Required"` | ||
| 20 | + // 公司主管理员姓名 | ||
| 21 | + UserName string `json:"userName" valid:"Required"` | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (createCompanyCommand *CreateCompanyCommand) Valid(validation *validation.Validation) { | ||
| 25 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +func (createCompanyCommand *CreateCompanyCommand) ValidateCommand() error { | ||
| 29 | + valid := validation.Validation{} | ||
| 30 | + b, err := valid.Valid(createCompanyCommand) | ||
| 31 | + if err != nil { | ||
| 32 | + return err | ||
| 33 | + } | ||
| 34 | + if !b { | ||
| 35 | + for _, validErr := range valid.Errors { | ||
| 36 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 37 | + } | ||
| 38 | + } | ||
| 39 | + return nil | ||
| 40 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type RemoveCompanyCommand struct { | ||
| 10 | + // 公司Id | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (removeCompanyCommand *RemoveCompanyCommand) Valid(validation *validation.Validation) { | ||
| 15 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (removeCompanyCommand *RemoveCompanyCommand) ValidateCommand() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(removeCompanyCommand) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type SetCompanyAdminCommand struct { | ||
| 10 | + // 公司Id | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | + // 公司主管理员账号 | ||
| 13 | + UserAccount string `json:"userAccount" valid:"Required"` | ||
| 14 | + // 公司主管理员姓名 | ||
| 15 | + UserName string `json:"userName" valid:"Required"` | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (setCompanyAdminCommand *SetCompanyAdminCommand) Valid(validation *validation.Validation) { | ||
| 19 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (setCompanyAdminCommand *SetCompanyAdminCommand) ValidateCommand() error { | ||
| 23 | + valid := validation.Validation{} | ||
| 24 | + b, err := valid.Valid(setCompanyAdminCommand) | ||
| 25 | + if err != nil { | ||
| 26 | + return err | ||
| 27 | + } | ||
| 28 | + if !b { | ||
| 29 | + for _, validErr := range valid.Errors { | ||
| 30 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 31 | + } | ||
| 32 | + } | ||
| 33 | + return nil | ||
| 34 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type UpdateCompanyCommand struct { | ||
| 10 | + // 公司Id | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | + // 公司名称 | ||
| 13 | + Name string `json:"name,omitempty"` | ||
| 14 | + // 公司简称 | ||
| 15 | + Abbreviation string `json:"abbreviation,omitempty"` | ||
| 16 | + // 状态 1正常 2禁用 | ||
| 17 | + Status int64 `json:"status,omitempty"` | ||
| 18 | + // 备注 | ||
| 19 | + Remarks string `json:"remarks,omitempty"` | ||
| 20 | + // 公司主管理员账号 | ||
| 21 | + UserAccount string `json:"userAccount,omitempty"` | ||
| 22 | + // 公司主管理员姓名 | ||
| 23 | + UserName string `json:"userName,omitempty"` | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +func (updateCompanyCommand *UpdateCompanyCommand) Valid(validation *validation.Validation) { | ||
| 27 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +func (updateCompanyCommand *UpdateCompanyCommand) ValidateCommand() error { | ||
| 31 | + valid := validation.Validation{} | ||
| 32 | + b, err := valid.Valid(updateCompanyCommand) | ||
| 33 | + if err != nil { | ||
| 34 | + return err | ||
| 35 | + } | ||
| 36 | + if !b { | ||
| 37 | + for _, validErr := range valid.Errors { | ||
| 38 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 39 | + } | ||
| 40 | + } | ||
| 41 | + return nil | ||
| 42 | +} |
pkg/application/company/query/get_company.go
0 → 100644
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type GetCompanyQuery struct { | ||
| 10 | + // 公司Id | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (getCompanyQuery *GetCompanyQuery) Valid(validation *validation.Validation) { | ||
| 15 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (getCompanyQuery *GetCompanyQuery) ValidateQuery() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(getCompanyQuery) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ListCompanyQuery struct { | ||
| 10 | + // 查询偏离量 | ||
| 11 | + Offset int `json:"offset" valid:"Required"` | ||
| 12 | + // 查询限制 | ||
| 13 | + Limit int `json:"limit" valid:"Required"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (listCompanyQuery *ListCompanyQuery) Valid(validation *validation.Validation) { | ||
| 17 | + // _ = validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (listCompanyQuery *ListCompanyQuery) ValidateQuery() error { | ||
| 21 | + valid := validation.Validation{} | ||
| 22 | + b, err := valid.Valid(listCompanyQuery) | ||
| 23 | + if err != nil { | ||
| 24 | + return err | ||
| 25 | + } | ||
| 26 | + if !b { | ||
| 27 | + for _, validErr := range valid.Errors { | ||
| 28 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + return nil | ||
| 32 | +} |
pkg/application/company/service/company.go
0 → 100644
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/linmadan/egglib-go/core/application" | ||
| 6 | + "github.com/linmadan/egglib-go/utils/tool_funs" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/command" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/query" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/factory" | ||
| 10 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" | ||
| 11 | + "time" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +// 公司服务 | ||
| 15 | +type CompanyService struct { | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +// 公司状态转换 禁用、启用 | ||
| 19 | +func (companyService *CompanyService) ConvertCompanyStatus(convertCompanyStatusCommand *command.ConvertCompanyStatusCommand) (interface{}, error) { | ||
| 20 | + if err := convertCompanyStatusCommand.ValidateCommand(); err != nil { | ||
| 21 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 22 | + } | ||
| 23 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 24 | + if err != nil { | ||
| 25 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 26 | + } | ||
| 27 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 28 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 29 | + } | ||
| 30 | + defer func() { | ||
| 31 | + transactionContext.RollbackTransaction() | ||
| 32 | + }() | ||
| 33 | + var companyRepository domain.CompanyRepository | ||
| 34 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 35 | + "transactionContext": transactionContext, | ||
| 36 | + }); err != nil { | ||
| 37 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 38 | + } else { | ||
| 39 | + companyRepository = value | ||
| 40 | + } | ||
| 41 | + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": convertCompanyStatusCommand.CompanyId}) | ||
| 42 | + if err != nil { | ||
| 43 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 44 | + } | ||
| 45 | + if company == nil { | ||
| 46 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(convertCompanyStatusCommand.CompanyId))) | ||
| 47 | + } | ||
| 48 | + if err := company.Update(tool_funs.SimpleStructToMap(convertCompanyStatusCommand)); err != nil { | ||
| 49 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 50 | + } | ||
| 51 | + if company, err := companyRepository.Save(company); err != nil { | ||
| 52 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 53 | + } else { | ||
| 54 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 55 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 56 | + } | ||
| 57 | + return company, nil | ||
| 58 | + } | ||
| 59 | +} | ||
| 60 | + | ||
| 61 | +// 创建 | ||
| 62 | +func (companyService *CompanyService) CreateCompany(createCompanyCommand *command.CreateCompanyCommand) (interface{}, error) { | ||
| 63 | + if err := createCompanyCommand.ValidateCommand(); err != nil { | ||
| 64 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 65 | + } | ||
| 66 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 67 | + if err != nil { | ||
| 68 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 69 | + } | ||
| 70 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 71 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 72 | + } | ||
| 73 | + defer func() { | ||
| 74 | + transactionContext.RollbackTransaction() | ||
| 75 | + }() | ||
| 76 | + | ||
| 77 | + newCompany := &domain.Company{ | ||
| 78 | + CompanyInfo: &domain.CompanyInfo{ | ||
| 79 | + Name: createCompanyCommand.Name, // 公司名称 | ||
| 80 | + Abbreviation: createCompanyCommand.Abbreviation, // 公司简称 | ||
| 81 | + Logo: "", // 公司logo | ||
| 82 | + Phone: "", // 公司联系电话 | ||
| 83 | + Status: createCompanyCommand.Status, // 状态 1正常 2禁用 | ||
| 84 | + Remarks: createCompanyCommand.Remarks, // 备注 | ||
| 85 | + Enable: 1, // 是否有效【1:有效】【2:无效】 | ||
| 86 | + Admin: &domain.CompanyAdmin{ | ||
| 87 | + UserAccount: createCompanyCommand.UserAccount, // 用户手机号 | ||
| 88 | + UserName: createCompanyCommand.UserName, // 用户名称 | ||
| 89 | + }, // 公司主管理员 | ||
| 90 | + }, | ||
| 91 | + CreateAt: time.Now(), | ||
| 92 | + UpdateAt: time.Now(), | ||
| 93 | + } | ||
| 94 | + var companyRepository domain.CompanyRepository | ||
| 95 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 96 | + "transactionContext": transactionContext, | ||
| 97 | + }); err != nil { | ||
| 98 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 99 | + } else { | ||
| 100 | + companyRepository = value | ||
| 101 | + } | ||
| 102 | + if company, err := companyRepository.Save(newCompany); err != nil { | ||
| 103 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 104 | + } else { | ||
| 105 | + // todo 新增公司管理员 | ||
| 106 | + | ||
| 107 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 108 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 109 | + } | ||
| 110 | + return company, nil | ||
| 111 | + } | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +// 返回 | ||
| 115 | +func (companyService *CompanyService) GetCompany(getCompanyQuery *query.GetCompanyQuery) (interface{}, error) { | ||
| 116 | + if err := getCompanyQuery.ValidateQuery(); err != nil { | ||
| 117 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 118 | + } | ||
| 119 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 120 | + if err != nil { | ||
| 121 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 122 | + } | ||
| 123 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 124 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 125 | + } | ||
| 126 | + defer func() { | ||
| 127 | + transactionContext.RollbackTransaction() | ||
| 128 | + }() | ||
| 129 | + var companyRepository domain.CompanyRepository | ||
| 130 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 131 | + "transactionContext": transactionContext, | ||
| 132 | + }); err != nil { | ||
| 133 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 134 | + } else { | ||
| 135 | + companyRepository = value | ||
| 136 | + } | ||
| 137 | + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": getCompanyQuery.CompanyId}) | ||
| 138 | + if err != nil { | ||
| 139 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 140 | + } | ||
| 141 | + if company == nil { | ||
| 142 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getCompanyQuery.CompanyId))) | ||
| 143 | + } else { | ||
| 144 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 145 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 146 | + } | ||
| 147 | + return company, nil | ||
| 148 | + } | ||
| 149 | +} | ||
| 150 | + | ||
| 151 | +// 返回列表 | ||
| 152 | +func (companyService *CompanyService) ListCompany(listCompanyQuery *query.ListCompanyQuery) (interface{}, error) { | ||
| 153 | + if err := listCompanyQuery.ValidateQuery(); err != nil { | ||
| 154 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 155 | + } | ||
| 156 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 157 | + if err != nil { | ||
| 158 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 159 | + } | ||
| 160 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 161 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 162 | + } | ||
| 163 | + defer func() { | ||
| 164 | + transactionContext.RollbackTransaction() | ||
| 165 | + }() | ||
| 166 | + var companyRepository domain.CompanyRepository | ||
| 167 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 168 | + "transactionContext": transactionContext, | ||
| 169 | + }); err != nil { | ||
| 170 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 171 | + } else { | ||
| 172 | + companyRepository = value | ||
| 173 | + } | ||
| 174 | + if count, companies, err := companyRepository.Find(tool_funs.SimpleStructToMap(listCompanyQuery)); err != nil { | ||
| 175 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 176 | + } else { | ||
| 177 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 178 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 179 | + } | ||
| 180 | + return map[string]interface{}{ | ||
| 181 | + "count": count, | ||
| 182 | + "companies": companies, | ||
| 183 | + }, nil | ||
| 184 | + } | ||
| 185 | +} | ||
| 186 | + | ||
| 187 | +// 移除 | ||
| 188 | +func (companyService *CompanyService) RemoveCompany(removeCompanyCommand *command.RemoveCompanyCommand) (interface{}, error) { | ||
| 189 | + if err := removeCompanyCommand.ValidateCommand(); err != nil { | ||
| 190 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 191 | + } | ||
| 192 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 193 | + if err != nil { | ||
| 194 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 195 | + } | ||
| 196 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 197 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 198 | + } | ||
| 199 | + defer func() { | ||
| 200 | + transactionContext.RollbackTransaction() | ||
| 201 | + }() | ||
| 202 | + var companyRepository domain.CompanyRepository | ||
| 203 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 204 | + "transactionContext": transactionContext, | ||
| 205 | + }); err != nil { | ||
| 206 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 207 | + } else { | ||
| 208 | + companyRepository = value | ||
| 209 | + } | ||
| 210 | + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": removeCompanyCommand.CompanyId}) | ||
| 211 | + if err != nil { | ||
| 212 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 213 | + } | ||
| 214 | + if company == nil { | ||
| 215 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeCompanyCommand.CompanyId))) | ||
| 216 | + } | ||
| 217 | + if company, err := companyRepository.Remove(company); err != nil { | ||
| 218 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 219 | + } else { | ||
| 220 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 221 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 222 | + } | ||
| 223 | + return company, nil | ||
| 224 | + } | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +// 设置公司管理员 | ||
| 228 | +func (companyService *CompanyService) SetCompanyAdmin(setCompanyAdminCommand *command.SetCompanyAdminCommand) (interface{}, error) { | ||
| 229 | + if err := setCompanyAdminCommand.ValidateCommand(); err != nil { | ||
| 230 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 231 | + } | ||
| 232 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 233 | + if err != nil { | ||
| 234 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 235 | + } | ||
| 236 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 237 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 238 | + } | ||
| 239 | + defer func() { | ||
| 240 | + transactionContext.RollbackTransaction() | ||
| 241 | + }() | ||
| 242 | + var companyRepository domain.CompanyRepository | ||
| 243 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 244 | + "transactionContext": transactionContext, | ||
| 245 | + }); err != nil { | ||
| 246 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 247 | + } else { | ||
| 248 | + companyRepository = value | ||
| 249 | + } | ||
| 250 | + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": setCompanyAdminCommand.CompanyId}) | ||
| 251 | + if err != nil { | ||
| 252 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 253 | + } | ||
| 254 | + if company == nil { | ||
| 255 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(setCompanyAdminCommand.CompanyId))) | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + newCompanyAdmin := &domain.CompanyAdmin{ | ||
| 259 | + UserAccount: setCompanyAdminCommand.UserAccount, // 用户手机号 | ||
| 260 | + UserName: setCompanyAdminCommand.UserName, // 用户名称 | ||
| 261 | + } | ||
| 262 | + // 更改公司管理员信息 | ||
| 263 | + if err := company.SetCompanyAdmin(newCompanyAdmin); err != nil { | ||
| 264 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 265 | + } | ||
| 266 | + | ||
| 267 | + if company, err := companyRepository.Save(company); err != nil { | ||
| 268 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 269 | + } else { | ||
| 270 | + // todo 更改公司管理员 | ||
| 271 | + | ||
| 272 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 273 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 274 | + } | ||
| 275 | + return company, nil | ||
| 276 | + } | ||
| 277 | +} | ||
| 278 | + | ||
| 279 | +// 更新 | ||
| 280 | +func (companyService *CompanyService) UpdateCompany(updateCompanyCommand *command.UpdateCompanyCommand) (interface{}, error) { | ||
| 281 | + if err := updateCompanyCommand.ValidateCommand(); err != nil { | ||
| 282 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 283 | + } | ||
| 284 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 285 | + if err != nil { | ||
| 286 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 287 | + } | ||
| 288 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 289 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 290 | + } | ||
| 291 | + defer func() { | ||
| 292 | + transactionContext.RollbackTransaction() | ||
| 293 | + }() | ||
| 294 | + var companyRepository domain.CompanyRepository | ||
| 295 | + if value, err := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 296 | + "transactionContext": transactionContext, | ||
| 297 | + }); err != nil { | ||
| 298 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 299 | + } else { | ||
| 300 | + companyRepository = value | ||
| 301 | + } | ||
| 302 | + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": updateCompanyCommand.CompanyId}) | ||
| 303 | + if err != nil { | ||
| 304 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 305 | + } | ||
| 306 | + if company == nil { | ||
| 307 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateCompanyCommand.CompanyId))) | ||
| 308 | + } | ||
| 309 | + if err := company.Update(tool_funs.SimpleStructToMap(updateCompanyCommand)); err != nil { | ||
| 310 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 311 | + } | ||
| 312 | + | ||
| 313 | + // 更改公司管理员信息 | ||
| 314 | + if updateCompanyCommand.UserAccount != "" || updateCompanyCommand.UserName != "" { | ||
| 315 | + companyAdmin := company.CompanyInfo.Admin | ||
| 316 | + if updateCompanyCommand.UserAccount != "" { | ||
| 317 | + companyAdmin.UserAccount = updateCompanyCommand.UserAccount // 用户手机号 | ||
| 318 | + } | ||
| 319 | + if updateCompanyCommand.UserName != "" { | ||
| 320 | + companyAdmin.UserName = updateCompanyCommand.UserName // 用户名称 | ||
| 321 | + } | ||
| 322 | + if err := company.SetCompanyAdmin(companyAdmin); err != nil { | ||
| 323 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 324 | + } | ||
| 325 | + | ||
| 326 | + // todo 更改公司管理员 | ||
| 327 | + } | ||
| 328 | + | ||
| 329 | + if company, err := companyRepository.Save(company); err != nil { | ||
| 330 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 331 | + } else { | ||
| 332 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 333 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 334 | + } | ||
| 335 | + return company, nil | ||
| 336 | + } | ||
| 337 | +} | ||
| 338 | + | ||
| 339 | +func NewCompanyService(options map[string]interface{}) *CompanyService { | ||
| 340 | + newCompanyService := &CompanyService{} | ||
| 341 | + return newCompanyService | ||
| 342 | +} |
| @@ -38,7 +38,7 @@ func CreateOrderRepository(options map[string]interface{}) (domain.OrderReposito | @@ -38,7 +38,7 @@ func CreateOrderRepository(options map[string]interface{}) (domain.OrderReposito | ||
| 38 | return repository.NewOrderRepository(transactionContext) | 38 | return repository.NewOrderRepository(transactionContext) |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | -func CreateGoodsRepository(options map[string]interface{}) (domain.GoodsRepository, error) { | 41 | +func CreateGoodsRepository(options map[string]interface{}) (domain.GoodRepository, error) { |
| 42 | var transactionContext *pg.TransactionContext | 42 | var transactionContext *pg.TransactionContext |
| 43 | if value, ok := options["transactionContext"]; ok { | 43 | if value, ok := options["transactionContext"]; ok { |
| 44 | transactionContext = value.(*pg.TransactionContext) | 44 | transactionContext = value.(*pg.TransactionContext) |
| @@ -7,6 +7,8 @@ import ( | @@ -7,6 +7,8 @@ import ( | ||
| 7 | ) | 7 | ) |
| 8 | 8 | ||
| 9 | type CreateOrderCommand struct { | 9 | type CreateOrderCommand struct { |
| 10 | + // 订单ID | ||
| 11 | + OrderId int64 `json:"orderId"` | ||
| 10 | // 订单编号 | 12 | // 订单编号 |
| 11 | OrderNo string `json:"orderNo" valid:"Required"` | 13 | OrderNo string `json:"orderNo" valid:"Required"` |
| 12 | // 公司Id | 14 | // 公司Id |
| @@ -15,16 +17,24 @@ type CreateOrderCommand struct { | @@ -15,16 +17,24 @@ type CreateOrderCommand struct { | ||
| 15 | BuyerName string `json:"buyerName,omitempty"` | 17 | BuyerName string `json:"buyerName,omitempty"` |
| 16 | // 联系信息 | 18 | // 联系信息 |
| 17 | ContactInfo string `json:"contactInfo,omitempty"` | 19 | ContactInfo string `json:"contactInfo,omitempty"` |
| 18 | - // 发货地址 | 20 | + // 收货地址 |
| 19 | ShippingAddress string `json:"shippingAddress,omitempty"` | 21 | ShippingAddress string `json:"shippingAddress,omitempty"` |
| 22 | + // 买家备注 | ||
| 23 | + Remarks string `json:"remarks,omitempty"` | ||
| 20 | // 订单商品总数 | 24 | // 订单商品总数 |
| 21 | OrderNum int64 `json:"orderNum" valid:"Required"` | 25 | OrderNum int64 `json:"orderNum" valid:"Required"` |
| 22 | // 订单总价 | 26 | // 订单总价 |
| 23 | TotalPrice float64 `json:"totalPrice" valid:"Required"` | 27 | TotalPrice float64 `json:"totalPrice" valid:"Required"` |
| 28 | + // 订单合伙人ID | ||
| 29 | + PartnerId int64 `json:"partnerId"` | ||
| 30 | + // 订单状态 | ||
| 31 | + OrderStatus int `json:"orderStatus"` | ||
| 32 | + // 订单类型 | ||
| 33 | + OrderType int `json:"orderType"` | ||
| 24 | } | 34 | } |
| 25 | 35 | ||
| 26 | func (createOrderCommand *CreateOrderCommand) Valid(validation *validation.Validation) { | 36 | func (createOrderCommand *CreateOrderCommand) Valid(validation *validation.Validation) { |
| 27 | - validation.SetError("CustomValid", "未实现的自定义认证") | 37 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
| 28 | } | 38 | } |
| 29 | 39 | ||
| 30 | func (createOrderCommand *CreateOrderCommand) ValidateCommand() error { | 40 | func (createOrderCommand *CreateOrderCommand) ValidateCommand() error { |
| @@ -14,7 +14,7 @@ type DrawDividendsCommand struct { | @@ -14,7 +14,7 @@ type DrawDividendsCommand struct { | ||
| 14 | } | 14 | } |
| 15 | 15 | ||
| 16 | func (drawDividendsCommand *DrawDividendsCommand) Valid(validation *validation.Validation) { | 16 | func (drawDividendsCommand *DrawDividendsCommand) Valid(validation *validation.Validation) { |
| 17 | - validation.SetError("CustomValid", "未实现的自定义认证") | 17 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | func (drawDividendsCommand *DrawDividendsCommand) ValidateCommand() error { | 20 | func (drawDividendsCommand *DrawDividendsCommand) ValidateCommand() error { |
| @@ -2,40 +2,16 @@ package command | @@ -2,40 +2,16 @@ package command | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | - "time" | ||
| 6 | - | ||
| 7 | "github.com/beego/beego/v2/core/validation" | 5 | "github.com/beego/beego/v2/core/validation" |
| 8 | ) | 6 | ) |
| 9 | 7 | ||
| 10 | type ReturnGoodsCommand struct { | 8 | type ReturnGoodsCommand struct { |
| 9 | + // 订单ID | ||
| 10 | + OrderId int64 `json:"orderId" valid:"Required"` | ||
| 11 | // 订单号 | 11 | // 订单号 |
| 12 | OrderNo string `json:"orderNo" valid:"Required"` | 12 | OrderNo string `json:"orderNo" valid:"Required"` |
| 13 | - // 是否是公司负责人 | ||
| 14 | - IsPrincipal bool `json:"isPrincipal" valid:"Required"` | ||
| 15 | // 统一用户id | 13 | // 统一用户id |
| 16 | Uid int64 `json:"uid" valid:"Required"` | 14 | Uid int64 `json:"uid" valid:"Required"` |
| 17 | - // 用户账号 | ||
| 18 | - UserAccount string `json:"userAccount" valid:"Required"` | ||
| 19 | - // 用户头像URL | ||
| 20 | - UserAvatarUrl string `json:"userAvatarUrl" valid:"Required"` | ||
| 21 | - // 用户名称 | ||
| 22 | - UserName string `json:"userName" valid:"Required"` | ||
| 23 | - // 邮件地址 | ||
| 24 | - Email string `json:"email" valid:"Required"` | ||
| 25 | - // 性别 | ||
| 26 | - Gender int `json:"gender" valid:"Required"` | ||
| 27 | - // 入职时间 | ||
| 28 | - EntryTime time.Time `json:"entryTime" valid:"Required"` | ||
| 29 | - // 分机 | ||
| 30 | - Extension string `json:"extension" valid:"Required"` | ||
| 31 | - // 工作地 | ||
| 32 | - Workplace string `json:"workplace" valid:"Required"` | ||
| 33 | - // 私人电话 | ||
| 34 | - PrivateNumber string `json:"privateNumber" valid:"Required"` | ||
| 35 | - // 工号 | ||
| 36 | - JobNumber string `json:"jobNumber" valid:"Required"` | ||
| 37 | - // 公司id | ||
| 38 | - CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 39 | } | 15 | } |
| 40 | 16 | ||
| 41 | func (returnGoodsCommand *ReturnGoodsCommand) Valid(validation *validation.Validation) { | 17 | func (returnGoodsCommand *ReturnGoodsCommand) Valid(validation *validation.Validation) { |
| @@ -9,10 +9,18 @@ import ( | @@ -9,10 +9,18 @@ import ( | ||
| 9 | type UpdateOrderCommand struct { | 9 | type UpdateOrderCommand struct { |
| 10 | // 订单id | 10 | // 订单id |
| 11 | OrderId int64 `json:"orderId" valid:"Required"` | 11 | OrderId int64 `json:"orderId" valid:"Required"` |
| 12 | + // 发货地址 | ||
| 13 | + BuyerName string `json:"buyerName"` | ||
| 14 | + // 订单商品总数 | ||
| 15 | + OrderNum string `json:"orderNum"` | ||
| 16 | + // 订单总价 | ||
| 17 | + TotalPrice float64 `json:"totalPrice"` | ||
| 18 | + // 收货地址 | ||
| 19 | + ShippingAddress string `json:"shippingAddress" valid:"omitempty"` | ||
| 12 | } | 20 | } |
| 13 | 21 | ||
| 14 | func (updateOrderCommand *UpdateOrderCommand) Valid(validation *validation.Validation) { | 22 | func (updateOrderCommand *UpdateOrderCommand) Valid(validation *validation.Validation) { |
| 15 | - validation.SetError("CustomValid", "未实现的自定义认证") | 23 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
| 16 | } | 24 | } |
| 17 | 25 | ||
| 18 | func (updateOrderCommand *UpdateOrderCommand) ValidateCommand() error { | 26 | func (updateOrderCommand *UpdateOrderCommand) ValidateCommand() error { |
| @@ -8,4 +8,6 @@ type BuyerInfo struct { | @@ -8,4 +8,6 @@ type BuyerInfo struct { | ||
| 8 | ContactInfo string `json:"contactInfo"` | 8 | ContactInfo string `json:"contactInfo"` |
| 9 | // 发货地址 | 9 | // 发货地址 |
| 10 | ShippingAddress string `json:"shippingAddress"` | 10 | ShippingAddress string `json:"shippingAddress"` |
| 11 | + // 买家备注 | ||
| 12 | + Remarks string `json:"remarks"` | ||
| 11 | } | 13 | } |
| @@ -34,9 +34,6 @@ func (company *Company) Update(data map[string]interface{}) error { | @@ -34,9 +34,6 @@ func (company *Company) Update(data map[string]interface{}) error { | ||
| 34 | if companyId, ok := data["companyId"]; ok { | 34 | if companyId, ok := data["companyId"]; ok { |
| 35 | company.CompanyId = companyId.(int64) | 35 | company.CompanyId = companyId.(int64) |
| 36 | } | 36 | } |
| 37 | - if companyId, ok := data["companyId"]; ok { | ||
| 38 | - company.CompanyInfo.CompanyId = companyId.(int64) | ||
| 39 | - } | ||
| 40 | if name, ok := data["name"]; ok { | 37 | if name, ok := data["name"]; ok { |
| 41 | company.CompanyInfo.Name = name.(string) | 38 | company.CompanyInfo.Name = name.(string) |
| 42 | } | 39 | } |
| @@ -58,5 +55,28 @@ func (company *Company) Update(data map[string]interface{}) error { | @@ -58,5 +55,28 @@ func (company *Company) Update(data map[string]interface{}) error { | ||
| 58 | if enable, ok := data["enable"]; ok { | 55 | if enable, ok := data["enable"]; ok { |
| 59 | company.CompanyInfo.Enable = enable.(int64) | 56 | company.CompanyInfo.Enable = enable.(int64) |
| 60 | } | 57 | } |
| 58 | + if userAccount, ok := data["userAccount"]; ok { | ||
| 59 | + company.CompanyInfo.Admin.UserAccount = userAccount.(string) | ||
| 60 | + } | ||
| 61 | + if userName, ok := data["userName"]; ok { | ||
| 62 | + company.CompanyInfo.Admin.UserName = userName.(string) | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + if createAt, ok := data["createAt"]; ok { | ||
| 66 | + company.CreateAt = createAt.(time.Time) | ||
| 67 | + } | ||
| 68 | + if updateAt, ok := data["updateAt"]; ok { | ||
| 69 | + company.UpdateAt = updateAt.(time.Time) | ||
| 70 | + } | ||
| 71 | + if deleteAt, ok := data["deleteAt"]; ok { | ||
| 72 | + company.DeleteAt = deleteAt.(time.Time) | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + return nil | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +// 更改公司管理员信息 | ||
| 79 | +func (company *Company) SetCompanyAdmin(admin *CompanyAdmin) error { | ||
| 80 | + company.CompanyInfo.Admin = admin | ||
| 61 | return nil | 81 | return nil |
| 62 | } | 82 | } |
| @@ -2,22 +2,18 @@ package domain | @@ -2,22 +2,18 @@ package domain | ||
| 2 | 2 | ||
| 3 | // 公司信息 | 3 | // 公司信息 |
| 4 | type CompanyInfo struct { | 4 | type CompanyInfo struct { |
| 5 | - // 公司Id | ||
| 6 | - CompanyId int64 `json:"companyId"` | ||
| 7 | - // 公司名称 | ||
| 8 | - Name string `json:"name"` | ||
| 9 | - // 公司简称 | ||
| 10 | - Abbreviation string `json:"abbreviation"` | ||
| 11 | - // 公司logo | ||
| 12 | - Logo string `json:"logo"` | ||
| 13 | - // 公司联系电话 | ||
| 14 | - Phone string `json:"phone"` | ||
| 15 | - // 状态 1正常 2禁用 | ||
| 16 | - Status int64 `json:"status"` | ||
| 17 | - // 备注 | ||
| 18 | - Remarks string `json:"remarks"` | ||
| 19 | - // 是否有效【1:有效】【2:无效】 | ||
| 20 | - Enable int64 `json:"enable"` | ||
| 21 | - // 公司主管理员 | ||
| 22 | - Admin *UserInfo `json:"admin"` | 5 | + Name string `json:"name"` // 公司名称 |
| 6 | + Abbreviation string `json:"abbreviation"` // 公司简称 | ||
| 7 | + Logo string `json:"logo"` // 公司logo | ||
| 8 | + Phone string `json:"phone"` // 公司联系电话 | ||
| 9 | + Status int64 `json:"status"` // 状态 1正常 2禁用 | ||
| 10 | + Remarks string `json:"remarks"` // 备注 | ||
| 11 | + Enable int64 `json:"enable"` // 是否有效【1:有效】【2:无效】 | ||
| 12 | + Admin *CompanyAdmin `json:"admin"` // 公司主管理员 | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +// 公司管理员信息值对象 | ||
| 16 | +type CompanyAdmin struct { | ||
| 17 | + UserAccount string `json:"userPhone"` // 用户手机号 | ||
| 18 | + UserName string `json:"userName"` // 用户名称 | ||
| 23 | } | 19 | } |
| @@ -3,24 +3,25 @@ package domain | @@ -3,24 +3,25 @@ package domain | ||
| 3 | import "time" | 3 | import "time" |
| 4 | 4 | ||
| 5 | // 订单商品实体 | 5 | // 订单商品实体 |
| 6 | -type Goods struct { | 6 | +type Good struct { |
| 7 | // 商品id | 7 | // 商品id |
| 8 | - GoodsId int64 `json:"goodsId"` | 8 | + GoodId int64 `json:"goodId"` |
| 9 | // 预定的货品数量 | 9 | // 预定的货品数量 |
| 10 | - GoodsNum int `json:"goodsNum"` | 10 | + GoodNum int `json:"goodNum"` |
| 11 | // 商品分红支付信息 | 11 | // 商品分红支付信息 |
| 12 | - GoodsDividend *Dividend `json:"goodsDividend"` | 12 | + GoodDividend *Dividend `json:"goodDividend"` |
| 13 | // 商品分红支付状态 | 13 | // 商品分红支付状态 |
| 14 | - GoodsDividendStatus int `json:"goodsDividendStatus"` | 14 | + GoodDividendStatus int `json:"goodDividendStatus"` |
| 15 | // 商品名称 | 15 | // 商品名称 |
| 16 | - GoodsName string `json:"goodsName"` | 16 | + GoodName string `json:"goodName"` |
| 17 | // 商品单价 | 17 | // 商品单价 |
| 18 | - GoodsTotalPrice float64 `json:"goodsTotalPrice"` | 18 | + GoodTotalPrice float64 `json:"goodTotalPrice"` |
| 19 | // 备注 | 19 | // 备注 |
| 20 | Remarks string `json:"remarks"` | 20 | Remarks string `json:"remarks"` |
| 21 | // 订单编号 | 21 | // 订单编号 |
| 22 | OrderNo string `json:"orderNo"` | 22 | OrderNo string `json:"orderNo"` |
| 23 | - GoodsDetail string `json:"goodsDetail"` | 23 | + // 商品详情 |
| 24 | + GoodDetail string `json:"goodDetail"` | ||
| 24 | // 创建时间 | 25 | // 创建时间 |
| 25 | CreateAt time.Time `json:"createAt"` | 26 | CreateAt time.Time `json:"createAt"` |
| 26 | // 更新时间 | 27 | // 更新时间 |
| @@ -29,80 +30,80 @@ type Goods struct { | @@ -29,80 +30,80 @@ type Goods struct { | ||
| 29 | DeleteAt time.Time `json:"deleteAt"` | 30 | DeleteAt time.Time `json:"deleteAt"` |
| 30 | } | 31 | } |
| 31 | 32 | ||
| 32 | -type GoodsRepository interface { | ||
| 33 | - Save(goods *Goods) (*Goods, error) | ||
| 34 | - Remove(goods *Goods) (*Goods, error) | ||
| 35 | - FindOne(queryOptions map[string]interface{}) (*Goods, error) | ||
| 36 | - Find(queryOptions map[string]interface{}) (int64, []*Goods, error) | 33 | +type GoodRepository interface { |
| 34 | + Save(good *Good) (*Good, error) | ||
| 35 | + Remove(good *Good) (*Good, error) | ||
| 36 | + FindOne(queryOptions map[string]interface{}) (*Good, error) | ||
| 37 | + Find(queryOptions map[string]interface{}) (int64, []*Good, error) | ||
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | -func (goods *Goods) Identify() interface{} { | ||
| 40 | - if goods.GoodsId == 0 { | 40 | +func (good *Good) Identify() interface{} { |
| 41 | + if good.GoodId == 0 { | ||
| 41 | return nil | 42 | return nil |
| 42 | } | 43 | } |
| 43 | - return goods.GoodsId | 44 | + return good.GoodId |
| 44 | } | 45 | } |
| 45 | 46 | ||
| 46 | -func (goods *Goods) Update(data map[string]interface{}) error { | ||
| 47 | - if goodsId, ok := data["goodsId"]; ok { | ||
| 48 | - goods.GoodsId = goodsId.(int64) | 47 | +func (good *Good) Update(data map[string]interface{}) error { |
| 48 | + if goodId, ok := data["goodId"]; ok { | ||
| 49 | + good.GoodId = goodId.(int64) | ||
| 49 | } | 50 | } |
| 50 | - if goodsNum, ok := data["goodsNum"]; ok { | ||
| 51 | - goods.GoodsNum = goodsNum.(int) | 51 | + if goodNum, ok := data["goodNum"]; ok { |
| 52 | + good.GoodNum = goodNum.(int) | ||
| 52 | } | 53 | } |
| 53 | if planBonus, ok := data["planBonus"]; ok { | 54 | if planBonus, ok := data["planBonus"]; ok { |
| 54 | - goods.GoodsDividend.PlanBonus = planBonus.(float64) | 55 | + good.GoodDividend.PlanBonus = planBonus.(float64) |
| 55 | } | 56 | } |
| 56 | if useBonus, ok := data["useBonus"]; ok { | 57 | if useBonus, ok := data["useBonus"]; ok { |
| 57 | - goods.GoodsDividend.UseBonus = useBonus.(float64) | 58 | + good.GoodDividend.UseBonus = useBonus.(float64) |
| 58 | } | 59 | } |
| 59 | if bonusHas, ok := data["bonusHas"]; ok { | 60 | if bonusHas, ok := data["bonusHas"]; ok { |
| 60 | - goods.GoodsDividend.BonusHas = bonusHas.(float64) | 61 | + good.GoodDividend.BonusHas = bonusHas.(float64) |
| 61 | } | 62 | } |
| 62 | if bonusNot, ok := data["bonusNot"]; ok { | 63 | if bonusNot, ok := data["bonusNot"]; ok { |
| 63 | - goods.GoodsDividend.BonusNot = bonusNot.(float64) | 64 | + good.GoodDividend.BonusNot = bonusNot.(float64) |
| 64 | } | 65 | } |
| 65 | if bonusExpense, ok := data["bonusExpense"]; ok { | 66 | if bonusExpense, ok := data["bonusExpense"]; ok { |
| 66 | - goods.GoodsDividend.BonusExpense = bonusExpense.(float64) | 67 | + good.GoodDividend.BonusExpense = bonusExpense.(float64) |
| 67 | } | 68 | } |
| 68 | if bonusStatus, ok := data["bonusStatus"]; ok { | 69 | if bonusStatus, ok := data["bonusStatus"]; ok { |
| 69 | - goods.GoodsDividend.BonusStatus = bonusStatus.(int) | 70 | + good.GoodDividend.BonusStatus = bonusStatus.(int) |
| 70 | } | 71 | } |
| 71 | if partnerBonusPercent, ok := data["partnerBonusPercent"]; ok { | 72 | if partnerBonusPercent, ok := data["partnerBonusPercent"]; ok { |
| 72 | - goods.GoodsDividend.PartnerBonusPercent = partnerBonusPercent.(float64) | 73 | + good.GoodDividend.PartnerBonusPercent = partnerBonusPercent.(float64) |
| 73 | } | 74 | } |
| 74 | if salesmanBonusPercent, ok := data["salesmanBonusPercent"]; ok { | 75 | if salesmanBonusPercent, ok := data["salesmanBonusPercent"]; ok { |
| 75 | - goods.GoodsDividend.SalesmanBonusPercent = salesmanBonusPercent.(float64) | 76 | + good.GoodDividend.SalesmanBonusPercent = salesmanBonusPercent.(float64) |
| 76 | } | 77 | } |
| 77 | if salesmanBonus, ok := data["salesmanBonus"]; ok { | 78 | if salesmanBonus, ok := data["salesmanBonus"]; ok { |
| 78 | - goods.GoodsDividend.SalesmanBonus = salesmanBonus.(float64) | 79 | + good.GoodDividend.SalesmanBonus = salesmanBonus.(float64) |
| 79 | } | 80 | } |
| 80 | - if goodsDividendStatus, ok := data["goodsDividendStatus"]; ok { | ||
| 81 | - goods.GoodsDividendStatus = goodsDividendStatus.(int) | 81 | + if goodDividendStatus, ok := data["goodDividendStatus"]; ok { |
| 82 | + good.GoodDividendStatus = goodDividendStatus.(int) | ||
| 82 | } | 83 | } |
| 83 | - if goodsName, ok := data["goodsName"]; ok { | ||
| 84 | - goods.GoodsName = goodsName.(string) | 84 | + if goodName, ok := data["goodName"]; ok { |
| 85 | + good.GoodName = goodName.(string) | ||
| 85 | } | 86 | } |
| 86 | - if goodsTotalPrice, ok := data["goodsTotalPrice"]; ok { | ||
| 87 | - goods.GoodsTotalPrice = goodsTotalPrice.(float64) | 87 | + if goodTotalPrice, ok := data["goodTotalPrice"]; ok { |
| 88 | + good.GoodTotalPrice = goodTotalPrice.(float64) | ||
| 88 | } | 89 | } |
| 89 | if remarks, ok := data["remarks"]; ok { | 90 | if remarks, ok := data["remarks"]; ok { |
| 90 | - goods.Remarks = remarks.(string) | 91 | + good.Remarks = remarks.(string) |
| 91 | } | 92 | } |
| 92 | if orderNo, ok := data["orderNo"]; ok { | 93 | if orderNo, ok := data["orderNo"]; ok { |
| 93 | - goods.OrderNo = orderNo.(string) | 94 | + good.OrderNo = orderNo.(string) |
| 94 | } | 95 | } |
| 95 | - if goodsDetail, ok := data["goodsDetail"]; ok { | ||
| 96 | - goods.GoodsDetail = goodsDetail.(string) | 96 | + if goodDetail, ok := data["goodDetail"]; ok { |
| 97 | + good.GoodDetail = goodDetail.(string) | ||
| 97 | } | 98 | } |
| 98 | if createAt, ok := data["createAt"]; ok { | 99 | if createAt, ok := data["createAt"]; ok { |
| 99 | - goods.CreateAt = createAt.(time.Time) | 100 | + good.CreateAt = createAt.(time.Time) |
| 100 | } | 101 | } |
| 101 | if updateAt, ok := data["updateAt"]; ok { | 102 | if updateAt, ok := data["updateAt"]; ok { |
| 102 | - goods.UpdateAt = updateAt.(time.Time) | 103 | + good.UpdateAt = updateAt.(time.Time) |
| 103 | } | 104 | } |
| 104 | if deleteAt, ok := data["deleteAt"]; ok { | 105 | if deleteAt, ok := data["deleteAt"]; ok { |
| 105 | - goods.DeleteAt = deleteAt.(time.Time) | 106 | + good.DeleteAt = deleteAt.(time.Time) |
| 106 | } | 107 | } |
| 107 | return nil | 108 | return nil |
| 108 | } | 109 | } |
| @@ -14,10 +14,11 @@ const ( | @@ -14,10 +14,11 @@ const ( | ||
| 14 | // 订单状态 | 14 | // 订单状态 |
| 15 | const ( | 15 | const ( |
| 16 | ORDER_STATUS_UNSHIPPED = iota + 1 // 待发货 | 16 | ORDER_STATUS_UNSHIPPED = iota + 1 // 待发货 |
| 17 | - ORDER_STATUS_TRANSIT // 待收货(运输中) | 17 | + ORDER_STATUS_SHIPPING // 已发货 |
| 18 | + ORDER_STATUS_PART_SHIPPING // 部分发货 | ||
| 18 | ORDER_STATUS_RECEIVED // 已收货 | 19 | ORDER_STATUS_RECEIVED // 已收货 |
| 19 | ORDER_STATUS_RETURN // 退换货 | 20 | ORDER_STATUS_RETURN // 退换货 |
| 20 | - ORDER_STATUS_CANCELED // 已取消(关闭) | 21 | + ORDER_STATUS_CANCELED // 已取消 |
| 21 | ORDER_STATUS_COMPLETED // 已完成 | 22 | ORDER_STATUS_COMPLETED // 已完成 |
| 22 | ORDER_STATUS_CLOSED // 已关闭 | 23 | ORDER_STATUS_CLOSED // 已关闭 |
| 23 | ) | 24 | ) |
| @@ -37,7 +38,7 @@ type Order struct { | @@ -37,7 +38,7 @@ type Order struct { | ||
| 37 | // 发货时间 | 38 | // 发货时间 |
| 38 | DeliveryTime time.Time `json:"deliveryTime"` | 39 | DeliveryTime time.Time `json:"deliveryTime"` |
| 39 | // 是否关闭订单标志 | 40 | // 是否关闭订单标志 |
| 40 | - IsDisable int `json:"isDisable"` | 41 | + IsDisable bool `json:"isDisable"` |
| 41 | // 订单编号 | 42 | // 订单编号 |
| 42 | OrderNo string `json:"orderNo"` | 43 | OrderNo string `json:"orderNo"` |
| 43 | // 订单详情 | 44 | // 订单详情 |
| @@ -47,7 +48,7 @@ type Order struct { | @@ -47,7 +48,7 @@ type Order struct { | ||
| 47 | // 订单分红支付状态 | 48 | // 订单分红支付状态 |
| 48 | OrderDividendStatus int `json:"orderDividendStatus"` | 49 | OrderDividendStatus int `json:"orderDividendStatus"` |
| 49 | // 订单货品 | 50 | // 订单货品 |
| 50 | - OrderGoods []*Goods `json:"orderGoods"` | 51 | + OrderGoods []*Good `json:"orderGoods"` |
| 51 | // 订单数据来源 | 52 | // 订单数据来源 |
| 52 | OrderSource *OrderSource `json:"orderSource"` | 53 | OrderSource *OrderSource `json:"orderSource"` |
| 53 | // 订单类型(1.实际订单;2.意向订单) | 54 | // 订单类型(1.实际订单;2.意向订单) |
| @@ -73,8 +74,8 @@ type Order struct { | @@ -73,8 +74,8 @@ type Order struct { | ||
| 73 | // 订单状态机 | 74 | // 订单状态机 |
| 74 | type OrderStatus interface { | 75 | type OrderStatus interface { |
| 75 | Update(order *Order, data map[string]interface{}) error // 更新订单 | 76 | Update(order *Order, data map[string]interface{}) error // 更新订单 |
| 76 | - Shipping(order *Order) error // 发货 | ||
| 77 | - Return(order *Order) error // 退换/货 | 77 | + Shipping(order *Order) error // 发货(全部发货,部分发货) |
| 78 | + Return(order *Order) error // 退换货 | ||
| 78 | Cancel(order *Order) error // 取消订单 | 79 | Cancel(order *Order) error // 取消订单 |
| 79 | Receive(order *Order) error // 收货 | 80 | Receive(order *Order) error // 收货 |
| 80 | Close(order *Order) error // 关闭订单 | 81 | Close(order *Order) error // 关闭订单 |
| @@ -107,7 +108,7 @@ func (status *UnShippedStatus) Update(order *Order, data map[string]interface{}) | @@ -107,7 +108,7 @@ func (status *UnShippedStatus) Update(order *Order, data map[string]interface{}) | ||
| 107 | order.DeliveryCode = deliveryCode.(string) | 108 | order.DeliveryCode = deliveryCode.(string) |
| 108 | } | 109 | } |
| 109 | if isDisable, ok := data["isDisable"]; ok { | 110 | if isDisable, ok := data["isDisable"]; ok { |
| 110 | - order.IsDisable = isDisable.(int) | 111 | + order.IsDisable = isDisable.(bool) |
| 111 | } | 112 | } |
| 112 | if orderNo, ok := data["orderNo"]; ok { | 113 | if orderNo, ok := data["orderNo"]; ok { |
| 113 | order.OrderNo = orderNo.(string) | 114 | order.OrderNo = orderNo.(string) |
| @@ -161,7 +162,7 @@ func (status *UnShippedStatus) Update(order *Order, data map[string]interface{}) | @@ -161,7 +162,7 @@ func (status *UnShippedStatus) Update(order *Order, data map[string]interface{}) | ||
| 161 | order.OrderDividendStatus = orderDividendStatus.(int) | 162 | order.OrderDividendStatus = orderDividendStatus.(int) |
| 162 | } | 163 | } |
| 163 | if orderGoods, ok := data["orderGoods"]; ok { | 164 | if orderGoods, ok := data["orderGoods"]; ok { |
| 164 | - order.OrderGoods = orderGoods.([]*Goods) | 165 | + order.OrderGoods = orderGoods.([]*Good) |
| 165 | } | 166 | } |
| 166 | if dataSourceId, ok := data["dataSourceId"]; ok { | 167 | if dataSourceId, ok := data["dataSourceId"]; ok { |
| 167 | order.OrderSource.DataSourceId = dataSourceId.(int64) | 168 | order.OrderSource.DataSourceId = dataSourceId.(int64) |
| @@ -204,13 +205,13 @@ func (status *UnShippedStatus) Shipping(order *Order) error { | @@ -204,13 +205,13 @@ func (status *UnShippedStatus) Shipping(order *Order) error { | ||
| 204 | currentTime := time.Now() | 205 | currentTime := time.Now() |
| 205 | order.DeliveryTime = currentTime | 206 | order.DeliveryTime = currentTime |
| 206 | if order.OrderType == ORDER_TYPE_INTENTION { | 207 | if order.OrderType == ORDER_TYPE_INTENTION { |
| 207 | - order.OrderStatus = ORDER_STATUS_TRANSIT | 208 | + order.OrderStatus = ORDER_STATUS_SHIPPING |
| 208 | order.CurrentStatus = &TransitStatus{} | 209 | order.CurrentStatus = &TransitStatus{} |
| 209 | } | 210 | } |
| 210 | return nil | 211 | return nil |
| 211 | } | 212 | } |
| 212 | 213 | ||
| 213 | -// 退货 | 214 | +// 待发货订单不能退货 |
| 214 | func (status *UnShippedStatus) Return(order *Order) error { | 215 | func (status *UnShippedStatus) Return(order *Order) error { |
| 215 | return fmt.Errorf("待发货订单不能退货") | 216 | return fmt.Errorf("待发货订单不能退货") |
| 216 | } | 217 | } |
| @@ -221,7 +222,7 @@ func (status *UnShippedStatus) Cancel(order *Order) error { | @@ -221,7 +222,7 @@ func (status *UnShippedStatus) Cancel(order *Order) error { | ||
| 221 | return nil | 222 | return nil |
| 222 | } | 223 | } |
| 223 | 224 | ||
| 224 | -// 收货 | 225 | +// 待发货订单不能收货 |
| 225 | func (status *UnShippedStatus) Receive(order *Order) error { | 226 | func (status *UnShippedStatus) Receive(order *Order) error { |
| 226 | return fmt.Errorf("待发货订单不能收货") | 227 | return fmt.Errorf("待发货订单不能收货") |
| 227 | } | 228 | } |
| @@ -234,11 +235,6 @@ func (status *TransitStatus) Shipping(order *Order) error { | @@ -234,11 +235,6 @@ func (status *TransitStatus) Shipping(order *Order) error { | ||
| 234 | return fmt.Errorf("待收货订单不能重复发货") | 235 | return fmt.Errorf("待收货订单不能重复发货") |
| 235 | } | 236 | } |
| 236 | 237 | ||
| 237 | -// 待收货订单不能关闭 | ||
| 238 | -func (status *TransitStatus) Close(order *Order) error { | ||
| 239 | - return fmt.Errorf("待收货订单不能关闭") | ||
| 240 | -} | ||
| 241 | - | ||
| 242 | // 待收货订单不允许编辑 | 238 | // 待收货订单不允许编辑 |
| 243 | func (status *TransitStatus) Update(order *Order, data map[string]interface{}) error { | 239 | func (status *TransitStatus) Update(order *Order, data map[string]interface{}) error { |
| 244 | return fmt.Errorf("已发货订单不允许编辑") | 240 | return fmt.Errorf("已发货订单不允许编辑") |
| @@ -261,10 +257,15 @@ func (status *TransitStatus) Receive(order *Order) error { | @@ -261,10 +257,15 @@ func (status *TransitStatus) Receive(order *Order) error { | ||
| 261 | return nil | 257 | return nil |
| 262 | } | 258 | } |
| 263 | 259 | ||
| 260 | +// 待收货订单不能关闭 | ||
| 261 | +func (status *TransitStatus) Close(order *Order) error { | ||
| 262 | + return fmt.Errorf("待收货订单不能关闭") | ||
| 263 | +} | ||
| 264 | + | ||
| 264 | // 收货状态 | 265 | // 收货状态 |
| 265 | type ReceivedStatus struct{} | 266 | type ReceivedStatus struct{} |
| 266 | 267 | ||
| 267 | -// 编辑订单 | 268 | +// 已收货订单不能编辑 |
| 268 | func (status *ReceivedStatus) Update(order *Order, data map[string]interface{}) error { | 269 | func (status *ReceivedStatus) Update(order *Order, data map[string]interface{}) error { |
| 269 | return fmt.Errorf("已收货订单不能编辑") | 270 | return fmt.Errorf("已收货订单不能编辑") |
| 270 | } | 271 | } |
| @@ -292,6 +293,8 @@ func (status *ReceivedStatus) Receive(order *Order) error { | @@ -292,6 +293,8 @@ func (status *ReceivedStatus) Receive(order *Order) error { | ||
| 292 | 293 | ||
| 293 | // 关闭订单 | 294 | // 关闭订单 |
| 294 | func (status *ReceivedStatus) Close(order *Order) error { | 295 | func (status *ReceivedStatus) Close(order *Order) error { |
| 296 | + order.IsDisable = true | ||
| 297 | + order.CurrentStatus = &ClosedStatus{} | ||
| 295 | return nil | 298 | return nil |
| 296 | } | 299 | } |
| 297 | 300 | ||
| @@ -323,9 +326,10 @@ func (status *ReturnedStatus) Receive(order *Order) error { | @@ -323,9 +326,10 @@ func (status *ReturnedStatus) Receive(order *Order) error { | ||
| 323 | return fmt.Errorf("已退货订单不能收货") | 326 | return fmt.Errorf("已退货订单不能收货") |
| 324 | } | 327 | } |
| 325 | 328 | ||
| 326 | -// 关闭订单 | 329 | +// 关闭已退货订单 |
| 327 | func (status *ReturnedStatus) Close(order *Order) error { | 330 | func (status *ReturnedStatus) Close(order *Order) error { |
| 328 | - | 331 | + order.IsDisable = true |
| 332 | + order.CurrentStatus = &ClosedStatus{} | ||
| 329 | return nil | 333 | return nil |
| 330 | } | 334 | } |
| 331 | 335 | ||
| @@ -359,6 +363,8 @@ func (status *CanceledStatus) Receive(order *Order) error { | @@ -359,6 +363,8 @@ func (status *CanceledStatus) Receive(order *Order) error { | ||
| 359 | 363 | ||
| 360 | // 关闭订单 | 364 | // 关闭订单 |
| 361 | func (status *CanceledStatus) Close(order *Order) error { | 365 | func (status *CanceledStatus) Close(order *Order) error { |
| 366 | + order.IsDisable = true | ||
| 367 | + order.CurrentStatus = &ClosedStatus{} | ||
| 362 | return nil | 368 | return nil |
| 363 | } | 369 | } |
| 364 | 370 | ||
| @@ -367,7 +373,36 @@ type CompletedStatus struct{} | @@ -367,7 +373,36 @@ type CompletedStatus struct{} | ||
| 367 | 373 | ||
| 368 | // 编辑已完成订单分红 | 374 | // 编辑已完成订单分红 |
| 369 | func (status *CompletedStatus) Update(order *Order, data map[string]interface{}) error { | 375 | func (status *CompletedStatus) Update(order *Order, data map[string]interface{}) error { |
| 370 | - | 376 | + if planBonus, ok := data["planBonus"]; ok { |
| 377 | + order.OrderDividend.PlanBonus = planBonus.(float64) | ||
| 378 | + } | ||
| 379 | + if useBonus, ok := data["useBonus"]; ok { | ||
| 380 | + order.OrderDividend.UseBonus = useBonus.(float64) | ||
| 381 | + } | ||
| 382 | + if bonusHas, ok := data["bonusHas"]; ok { | ||
| 383 | + order.OrderDividend.BonusHas = bonusHas.(float64) | ||
| 384 | + } | ||
| 385 | + if bonusNot, ok := data["bonusNot"]; ok { | ||
| 386 | + order.OrderDividend.BonusNot = bonusNot.(float64) | ||
| 387 | + } | ||
| 388 | + if bonusExpense, ok := data["bonusExpense"]; ok { | ||
| 389 | + order.OrderDividend.BonusExpense = bonusExpense.(float64) | ||
| 390 | + } | ||
| 391 | + if bonusStatus, ok := data["bonusStatus"]; ok { | ||
| 392 | + order.OrderDividend.BonusStatus = bonusStatus.(int) | ||
| 393 | + } | ||
| 394 | + if partnerBonusPercent, ok := data["partnerBonusPercent"]; ok { | ||
| 395 | + order.OrderDividend.PartnerBonusPercent = partnerBonusPercent.(float64) | ||
| 396 | + } | ||
| 397 | + if salesmanBonusPercent, ok := data["salesmanBonusPercent"]; ok { | ||
| 398 | + order.OrderDividend.SalesmanBonusPercent = salesmanBonusPercent.(float64) | ||
| 399 | + } | ||
| 400 | + if salesmanBonus, ok := data["salesmanBonus"]; ok { | ||
| 401 | + order.OrderDividend.SalesmanBonus = salesmanBonus.(float64) | ||
| 402 | + } | ||
| 403 | + if orderDividendStatus, ok := data["orderDividendStatus"]; ok { | ||
| 404 | + order.OrderDividendStatus = orderDividendStatus.(int) | ||
| 405 | + } | ||
| 371 | return nil | 406 | return nil |
| 372 | } | 407 | } |
| 373 | 408 | ||
| @@ -393,12 +428,47 @@ func (status *CompletedStatus) Receive(order *Order) error { | @@ -393,12 +428,47 @@ func (status *CompletedStatus) Receive(order *Order) error { | ||
| 393 | 428 | ||
| 394 | // 关闭已完成订单 | 429 | // 关闭已完成订单 |
| 395 | func (status *CompletedStatus) Close(order *Order) error { | 430 | func (status *CompletedStatus) Close(order *Order) error { |
| 431 | + order.IsDisable = true | ||
| 432 | + order.CurrentStatus = &ClosedStatus{} | ||
| 396 | return nil | 433 | return nil |
| 397 | } | 434 | } |
| 398 | 435 | ||
| 436 | +// 关闭状态 | ||
| 437 | +type ClosedStatus struct{} | ||
| 438 | + | ||
| 439 | +// 已关闭订单不能进行编辑 | ||
| 440 | +func (status *ClosedStatus) Update(order *Order, data map[string]interface{}) error { | ||
| 441 | + return fmt.Errorf("已关闭订单不能进行编辑") | ||
| 442 | +} | ||
| 443 | + | ||
| 444 | +// 已关闭订单不能发货 | ||
| 445 | +func (status *ClosedStatus) Shipping(order *Order) error { | ||
| 446 | + return fmt.Errorf("已关闭订单不能发货") | ||
| 447 | +} | ||
| 448 | + | ||
| 449 | +// 已关闭订单不能退货 | ||
| 450 | +func (status *ClosedStatus) Return(order *Order) error { | ||
| 451 | + return fmt.Errorf("已关闭订单不能退货") | ||
| 452 | +} | ||
| 453 | + | ||
| 454 | +// 已关闭订单不能取消 | ||
| 455 | +func (status *ClosedStatus) Cancel(order *Order) error { | ||
| 456 | + return fmt.Errorf("已关闭订单不能取消") | ||
| 457 | +} | ||
| 458 | + | ||
| 459 | +// 已关闭订单不能收货 | ||
| 460 | +func (status *ClosedStatus) Receive(order *Order) error { | ||
| 461 | + return fmt.Errorf("已关闭订单不能收货") | ||
| 462 | +} | ||
| 463 | + | ||
| 464 | +// 已关闭订单不能再次关闭 | ||
| 465 | +func (status *ClosedStatus) Close(order *Order) error { | ||
| 466 | + return fmt.Errorf("已关闭订单不能再次关闭") | ||
| 467 | +} | ||
| 468 | + | ||
| 399 | // 订单仓储 | 469 | // 订单仓储 |
| 400 | type OrderRepository interface { | 470 | type OrderRepository interface { |
| 401 | - Save(order *Order) (*Order, error) // 下单/编辑订单 | 471 | + Save(order *Order) (*Order, error) |
| 402 | Remove(order *Order) (*Order, error) | 472 | Remove(order *Order) (*Order, error) |
| 403 | FindOne(queryOptions map[string]interface{}) (*Order, error) | 473 | FindOne(queryOptions map[string]interface{}) (*Order, error) |
| 404 | Find(queryOptions map[string]interface{}) (int64, []*Order, error) | 474 | Find(queryOptions map[string]interface{}) (int64, []*Order, error) |
| @@ -15,7 +15,7 @@ type PartnerInfo struct { | @@ -15,7 +15,7 @@ type PartnerInfo struct { | ||
| 15 | // 合伙时间 | 15 | // 合伙时间 |
| 16 | CooperateTime time.Time `json:"cooperateTime"` | 16 | CooperateTime time.Time `json:"cooperateTime"` |
| 17 | // 业务员 | 17 | // 业务员 |
| 18 | - Salesmans []*Salesman `json:"salesmans"` | 18 | + Salesmen []*Salesman `json:"salesmen"` |
| 19 | // 合伙人类型 | 19 | // 合伙人类型 |
| 20 | - PartnerCategorys []*PartnerCategory `json:"partnerCategorys"` | 20 | + PartnerCategories []*PartnerCategory `json:"partnerCategories"` |
| 21 | } | 21 | } |
| @@ -27,7 +27,7 @@ func init() { | @@ -27,7 +27,7 @@ func init() { | ||
| 27 | &models.Permission{}, | 27 | &models.Permission{}, |
| 28 | &models.PartnerCategory{}, | 28 | &models.PartnerCategory{}, |
| 29 | &models.UserAuth{}, | 29 | &models.UserAuth{}, |
| 30 | - &models.Goods{}, | 30 | + &models.Good{}, |
| 31 | &models.Order{}, | 31 | &models.Order{}, |
| 32 | &models.User{}, | 32 | &models.User{}, |
| 33 | &models.Company{}, | 33 | &models.Company{}, |
| @@ -6,7 +6,7 @@ import ( | @@ -6,7 +6,7 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type Company struct { | 8 | type Company struct { |
| 9 | - tableName string `pg:"companys,alias:company"` | 9 | + tableName string `pg:"companies,alias:company"` |
| 10 | // 公司Id | 10 | // 公司Id |
| 11 | CompanyId int64 `pg:",pk"` | 11 | CompanyId int64 `pg:",pk"` |
| 12 | // 公司信息 | 12 | // 公司信息 |
| @@ -16,5 +16,5 @@ type Company struct { | @@ -16,5 +16,5 @@ type Company struct { | ||
| 16 | // 更新时间 | 16 | // 更新时间 |
| 17 | UpdateAt time.Time | 17 | UpdateAt time.Time |
| 18 | // 删除时间 | 18 | // 删除时间 |
| 19 | - DeleteAt time.Time | 19 | + DeleteAt time.Time `pg:",soft_delete"` |
| 20 | } | 20 | } |
| @@ -5,30 +5,30 @@ import ( | @@ -5,30 +5,30 @@ import ( | ||
| 5 | "time" | 5 | "time" |
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | -type Goods struct { | ||
| 9 | - tableName string `pg:"goodss,alias:goods"` | 8 | +type Good struct { |
| 9 | + tableName string `pg:"goods,alias:good"` | ||
| 10 | // 商品id | 10 | // 商品id |
| 11 | - GoodsId int64 | 11 | + GoodId int64 `pg:",pk"` |
| 12 | // 预定的货品数量 | 12 | // 预定的货品数量 |
| 13 | - GoodsNum int | 13 | + GoodNum int |
| 14 | // 商品分红支付信息 | 14 | // 商品分红支付信息 |
| 15 | - GoodsDividend *domain.Dividend | 15 | + GoodDividend *domain.Dividend |
| 16 | // 商品分红支付状态 | 16 | // 商品分红支付状态 |
| 17 | - GoodsDividendStatus int | 17 | + GoodDividendStatus int |
| 18 | // 商品名称 | 18 | // 商品名称 |
| 19 | - GoodsName string | 19 | + GoodName string |
| 20 | // 商品单价 | 20 | // 商品单价 |
| 21 | - GoodsTotalPrice float64 | 21 | + GoodTotalPrice float64 |
| 22 | // 备注 | 22 | // 备注 |
| 23 | Remarks string | 23 | Remarks string |
| 24 | // 订单编号 | 24 | // 订单编号 |
| 25 | OrderNo string | 25 | OrderNo string |
| 26 | // 商品详情 | 26 | // 商品详情 |
| 27 | - GoodsDetail string | 27 | + GoodDetail string |
| 28 | // 创建时间 | 28 | // 创建时间 |
| 29 | CreateAt time.Time | 29 | CreateAt time.Time |
| 30 | // 更新时间 | 30 | // 更新时间 |
| 31 | UpdateAt time.Time | 31 | UpdateAt time.Time |
| 32 | // 删除时间 | 32 | // 删除时间 |
| 33 | - DeleteAt time.Time | 33 | + DeleteAt time.Time `pg:",soft_delete"` |
| 34 | } | 34 | } |
| @@ -8,7 +8,7 @@ import ( | @@ -8,7 +8,7 @@ import ( | ||
| 8 | type Order struct { | 8 | type Order struct { |
| 9 | tableName string `pg:"orders,alias:order"` | 9 | tableName string `pg:"orders,alias:order"` |
| 10 | // 订单id | 10 | // 订单id |
| 11 | - OrderId int64 | 11 | + OrderId int64 `pg:",pk"` |
| 12 | // 买家信息 | 12 | // 买家信息 |
| 13 | Buyer *domain.BuyerInfo | 13 | Buyer *domain.BuyerInfo |
| 14 | // 公司Id | 14 | // 公司Id |
| @@ -18,7 +18,7 @@ type Order struct { | @@ -18,7 +18,7 @@ type Order struct { | ||
| 18 | // 发货单号 | 18 | // 发货单号 |
| 19 | DeliveryCode string | 19 | DeliveryCode string |
| 20 | // 是否关闭订单标志 | 20 | // 是否关闭订单标志 |
| 21 | - IsDisable int | 21 | + IsDisable bool |
| 22 | // 订单编号 | 22 | // 订单编号 |
| 23 | OrderNo string | 23 | OrderNo string |
| 24 | // 订单详情 | 24 | // 订单详情 |
| @@ -28,7 +28,7 @@ type Order struct { | @@ -28,7 +28,7 @@ type Order struct { | ||
| 28 | // 订单分红支付状态 | 28 | // 订单分红支付状态 |
| 29 | OrderDividendStatus int | 29 | OrderDividendStatus int |
| 30 | // 订单货品 | 30 | // 订单货品 |
| 31 | - OrderGoods []*domain.Goods | 31 | + OrderGoods []*domain.Good |
| 32 | // 订单数据来源 | 32 | // 订单数据来源 |
| 33 | OrderSource *domain.OrderSource | 33 | OrderSource *domain.OrderSource |
| 34 | // 订单类型(1.实际订单;2.意向订单) | 34 | // 订单类型(1.实际订单;2.意向订单) |
| @@ -46,5 +46,5 @@ type Order struct { | @@ -46,5 +46,5 @@ type Order struct { | ||
| 46 | // 更新时间 | 46 | // 更新时间 |
| 47 | UpdateAt time.Time | 47 | UpdateAt time.Time |
| 48 | // 软删 | 48 | // 软删 |
| 49 | - DeleteAt time.Time | 49 | + DeleteAt time.Time `pg:",soft_delete"` |
| 50 | } | 50 | } |
pkg/infrastructure/pg/transform/good.go
0 → 100644
| 1 | +package transform | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg/models" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func TransformToGoodDomainModelFromPgModels(goodModel *models.Good) (*domain.Good, error) { | ||
| 9 | + return &domain.Good{ | ||
| 10 | + GoodId: goodModel.GoodId, | ||
| 11 | + GoodNum: goodModel.GoodNum, | ||
| 12 | + GoodDividend: goodModel.GoodDividend, | ||
| 13 | + GoodDividendStatus: goodModel.GoodDividendStatus, | ||
| 14 | + GoodName: goodModel.GoodName, | ||
| 15 | + GoodTotalPrice: goodModel.GoodTotalPrice, | ||
| 16 | + Remarks: goodModel.Remarks, | ||
| 17 | + OrderNo: goodModel.OrderNo, | ||
| 18 | + GoodDetail: goodModel.GoodDetail, | ||
| 19 | + CreateAt: goodModel.CreateAt, | ||
| 20 | + UpdateAt: goodModel.UpdateAt, | ||
| 21 | + DeleteAt: goodModel.DeleteAt, | ||
| 22 | + }, nil | ||
| 23 | +} |
pkg/infrastructure/pg/transform/goods.go
已删除
100644 → 0
| 1 | -package transform | ||
| 2 | - | ||
| 3 | -import ( | ||
| 4 | - "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" | ||
| 5 | - "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg/models" | ||
| 6 | -) | ||
| 7 | - | ||
| 8 | -func TransformToGoodsDomainModelFromPgModels(goodsModel *models.Goods) (*domain.Goods, error) { | ||
| 9 | - return &domain.Goods{ | ||
| 10 | - GoodsId: goodsModel.GoodsId, | ||
| 11 | - GoodsNum: goodsModel.GoodsNum, | ||
| 12 | - GoodsDividend: goodsModel.GoodsDividend, | ||
| 13 | - GoodsDividendStatus: goodsModel.GoodsDividendStatus, | ||
| 14 | - GoodsName: goodsModel.GoodsName, | ||
| 15 | - GoodsTotalPrice: goodsModel.GoodsTotalPrice, | ||
| 16 | - Remarks: goodsModel.Remarks, | ||
| 17 | - OrderNo: goodsModel.OrderNo, | ||
| 18 | - GoodsDetail: goodsModel.GoodsDetail, | ||
| 19 | - CreateAt: goodsModel.CreateAt, | ||
| 20 | - UpdateAt: goodsModel.UpdateAt, | ||
| 21 | - DeleteAt: goodsModel.DeleteAt, | ||
| 22 | - }, nil | ||
| 23 | -} |
| @@ -30,7 +30,6 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | @@ -30,7 +30,6 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | ||
| 30 | "company_info", | 30 | "company_info", |
| 31 | "create_at", | 31 | "create_at", |
| 32 | "update_at", | 32 | "update_at", |
| 33 | - "delete_at", | ||
| 34 | } | 33 | } |
| 35 | insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | 34 | insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) |
| 36 | insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) | 35 | insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) |
| @@ -53,7 +52,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | @@ -53,7 +52,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | ||
| 53 | &company.UpdateAt, | 52 | &company.UpdateAt, |
| 54 | &company.DeleteAt, | 53 | &company.DeleteAt, |
| 55 | ), | 54 | ), |
| 56 | - fmt.Sprintf("INSERT INTO companys (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | 55 | + |
| 56 | + fmt.Sprintf("INSERT INTO companies (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | ||
| 57 | + | ||
| 57 | company.CompanyId, | 58 | company.CompanyId, |
| 58 | company.CompanyInfo, | 59 | company.CompanyInfo, |
| 59 | company.CreateAt, | 60 | company.CreateAt, |
| @@ -71,8 +72,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | @@ -71,8 +72,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp | ||
| 71 | &company.UpdateAt, | 72 | &company.UpdateAt, |
| 72 | &company.DeleteAt, | 73 | &company.DeleteAt, |
| 73 | ), | 74 | ), |
| 74 | - fmt.Sprintf("UPDATE companys SET %s WHERE company_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | ||
| 75 | - company.CompanyId, | 75 | + |
| 76 | + fmt.Sprintf("UPDATE companies SET %s WHERE company_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | ||
| 77 | + | ||
| 76 | company.CompanyInfo, | 78 | company.CompanyInfo, |
| 77 | company.CreateAt, | 79 | company.CreateAt, |
| 78 | company.UpdateAt, | 80 | company.UpdateAt, |
| @@ -115,21 +117,23 @@ func (repository *CompanyRepository) FindOne(queryOptions map[string]interface{} | @@ -115,21 +117,23 @@ func (repository *CompanyRepository) FindOne(queryOptions map[string]interface{} | ||
| 115 | func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Company, error) { | 117 | func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Company, error) { |
| 116 | tx := repository.transactionContext.PgTx | 118 | tx := repository.transactionContext.PgTx |
| 117 | var companyModels []*models.Company | 119 | var companyModels []*models.Company |
| 118 | - companys := make([]*domain.Company, 0) | 120 | + |
| 121 | + companies := make([]*domain.Company, 0) | ||
| 122 | + | ||
| 119 | query := sqlbuilder.BuildQuery(tx.Model(&companyModels), queryOptions) | 123 | query := sqlbuilder.BuildQuery(tx.Model(&companyModels), queryOptions) |
| 120 | query.SetOffsetAndLimit(20) | 124 | query.SetOffsetAndLimit(20) |
| 121 | query.SetOrderDirect("company_id", "DESC") | 125 | query.SetOrderDirect("company_id", "DESC") |
| 122 | if count, err := query.SelectAndCount(); err != nil { | 126 | if count, err := query.SelectAndCount(); err != nil { |
| 123 | - return 0, companys, err | 127 | + return 0, companies, err |
| 124 | } else { | 128 | } else { |
| 125 | for _, companyModel := range companyModels { | 129 | for _, companyModel := range companyModels { |
| 126 | if company, err := transform.TransformToCompanyDomainModelFromPgModels(companyModel); err != nil { | 130 | if company, err := transform.TransformToCompanyDomainModelFromPgModels(companyModel); err != nil { |
| 127 | - return 0, companys, err | 131 | + return 0, companies, err |
| 128 | } else { | 132 | } else { |
| 129 | - companys = append(companys, company) | 133 | + companies = append(companies, company) |
| 130 | } | 134 | } |
| 131 | } | 135 | } |
| 132 | - return int64(count), companys, nil | 136 | + return int64(count), companies, nil |
| 133 | } | 137 | } |
| 134 | } | 138 | } |
| 135 | func NewCompanyRepository(transactionContext *pgTransaction.TransactionContext) (*CompanyRepository, error) { | 139 | func NewCompanyRepository(transactionContext *pgTransaction.TransactionContext) (*CompanyRepository, error) { |
| @@ -12,11 +12,11 @@ import ( | @@ -12,11 +12,11 @@ import ( | ||
| 12 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg/transform" | 12 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg/transform" |
| 13 | ) | 13 | ) |
| 14 | 14 | ||
| 15 | -type GoodsRepository struct { | 15 | +type GoodRepository struct { |
| 16 | transactionContext *pgTransaction.TransactionContext | 16 | transactionContext *pgTransaction.TransactionContext |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | -func (repository *GoodsRepository) nextIdentify() (int64, error) { | 19 | +func (repository *GoodRepository) nextIdentify() (int64, error) { |
| 20 | IdWorker, err := snowflake.NewIdWorker(1) | 20 | IdWorker, err := snowflake.NewIdWorker(1) |
| 21 | if err != nil { | 21 | if err != nil { |
| 22 | return 0, err | 22 | return 0, err |
| @@ -24,17 +24,17 @@ func (repository *GoodsRepository) nextIdentify() (int64, error) { | @@ -24,17 +24,17 @@ func (repository *GoodsRepository) nextIdentify() (int64, error) { | ||
| 24 | id, err := IdWorker.NextId() | 24 | id, err := IdWorker.NextId() |
| 25 | return id, err | 25 | return id, err |
| 26 | } | 26 | } |
| 27 | -func (repository *GoodsRepository) Save(goods *domain.Goods) (*domain.Goods, error) { | 27 | +func (repository *GoodRepository) Save(good *domain.Good) (*domain.Good, error) { |
| 28 | sqlBuildFields := []string{ | 28 | sqlBuildFields := []string{ |
| 29 | - "goods_id", | ||
| 30 | - "goods_num", | ||
| 31 | - "goods_dividend", | ||
| 32 | - "goods_dividend_status", | ||
| 33 | - "goods_name", | ||
| 34 | - "goods_total_price", | 29 | + "good_id", |
| 30 | + "good_num", | ||
| 31 | + "good_dividend", | ||
| 32 | + "good_dividend_status", | ||
| 33 | + "good_name", | ||
| 34 | + "good_total_price", | ||
| 35 | "remarks", | 35 | "remarks", |
| 36 | "order_no", | 36 | "order_no", |
| 37 | - "goods_detail", | 37 | + "good_detail", |
| 38 | "create_at", | 38 | "create_at", |
| 39 | "update_at", | 39 | "update_at", |
| 40 | "delete_at", | 40 | "delete_at", |
| @@ -45,94 +45,94 @@ func (repository *GoodsRepository) Save(goods *domain.Goods) (*domain.Goods, err | @@ -45,94 +45,94 @@ func (repository *GoodsRepository) Save(goods *domain.Goods) (*domain.Goods, err | ||
| 45 | updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "goods_id") | 45 | updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "goods_id") |
| 46 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) | 46 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) |
| 47 | tx := repository.transactionContext.PgTx | 47 | tx := repository.transactionContext.PgTx |
| 48 | - if goods.Identify() == nil { | ||
| 49 | - goodsId, err := repository.nextIdentify() | 48 | + if good.Identify() == nil { |
| 49 | + goodId, err := repository.nextIdentify() | ||
| 50 | if err != nil { | 50 | if err != nil { |
| 51 | - return goods, err | 51 | + return good, err |
| 52 | } else { | 52 | } else { |
| 53 | - goods.GoodsId = goodsId | 53 | + good.GoodId = goodId |
| 54 | } | 54 | } |
| 55 | if _, err := tx.QueryOne( | 55 | if _, err := tx.QueryOne( |
| 56 | pg.Scan( | 56 | pg.Scan( |
| 57 | - &goods.GoodsId, | ||
| 58 | - &goods.GoodsNum, | ||
| 59 | - &goods.GoodsDividend, | ||
| 60 | - &goods.GoodsDividendStatus, | ||
| 61 | - &goods.GoodsName, | ||
| 62 | - &goods.GoodsTotalPrice, | ||
| 63 | - &goods.Remarks, | ||
| 64 | - &goods.OrderNo, | ||
| 65 | - &goods.GoodsDetail, | ||
| 66 | - &goods.CreateAt, | ||
| 67 | - &goods.UpdateAt, | ||
| 68 | - &goods.DeleteAt, | 57 | + &good.GoodId, |
| 58 | + &good.GoodNum, | ||
| 59 | + &good.GoodDividend, | ||
| 60 | + &good.GoodDividendStatus, | ||
| 61 | + &good.GoodName, | ||
| 62 | + &good.GoodTotalPrice, | ||
| 63 | + &good.Remarks, | ||
| 64 | + &good.OrderNo, | ||
| 65 | + &good.GoodDetail, | ||
| 66 | + &good.CreateAt, | ||
| 67 | + &good.UpdateAt, | ||
| 68 | + &good.DeleteAt, | ||
| 69 | ), | 69 | ), |
| 70 | - fmt.Sprintf("INSERT INTO goodss (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | ||
| 71 | - goods.GoodsId, | ||
| 72 | - goods.GoodsNum, | ||
| 73 | - goods.GoodsDividend, | ||
| 74 | - goods.GoodsDividendStatus, | ||
| 75 | - goods.GoodsName, | ||
| 76 | - goods.GoodsTotalPrice, | ||
| 77 | - goods.Remarks, | ||
| 78 | - goods.OrderNo, | ||
| 79 | - goods.GoodsDetail, | ||
| 80 | - goods.CreateAt, | ||
| 81 | - goods.UpdateAt, | ||
| 82 | - goods.DeleteAt, | 70 | + fmt.Sprintf("INSERT INTO good (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), |
| 71 | + good.GoodId, | ||
| 72 | + good.GoodNum, | ||
| 73 | + good.GoodDividend, | ||
| 74 | + good.GoodDividendStatus, | ||
| 75 | + good.GoodName, | ||
| 76 | + good.GoodTotalPrice, | ||
| 77 | + good.Remarks, | ||
| 78 | + good.OrderNo, | ||
| 79 | + good.GoodDetail, | ||
| 80 | + good.CreateAt, | ||
| 81 | + good.UpdateAt, | ||
| 82 | + good.DeleteAt, | ||
| 83 | ); err != nil { | 83 | ); err != nil { |
| 84 | - return goods, err | 84 | + return good, err |
| 85 | } | 85 | } |
| 86 | } else { | 86 | } else { |
| 87 | if _, err := tx.QueryOne( | 87 | if _, err := tx.QueryOne( |
| 88 | pg.Scan( | 88 | pg.Scan( |
| 89 | - &goods.GoodsId, | ||
| 90 | - &goods.GoodsNum, | ||
| 91 | - &goods.GoodsDividend, | ||
| 92 | - &goods.GoodsDividendStatus, | ||
| 93 | - &goods.GoodsName, | ||
| 94 | - &goods.GoodsTotalPrice, | ||
| 95 | - &goods.Remarks, | ||
| 96 | - &goods.OrderNo, | ||
| 97 | - &goods.GoodsDetail, | ||
| 98 | - &goods.CreateAt, | ||
| 99 | - &goods.UpdateAt, | ||
| 100 | - &goods.DeleteAt, | 89 | + &good.GoodId, |
| 90 | + &good.GoodNum, | ||
| 91 | + &good.GoodDividend, | ||
| 92 | + &good.GoodDividendStatus, | ||
| 93 | + &good.GoodName, | ||
| 94 | + &good.GoodTotalPrice, | ||
| 95 | + &good.Remarks, | ||
| 96 | + &good.OrderNo, | ||
| 97 | + &good.GoodDetail, | ||
| 98 | + &good.CreateAt, | ||
| 99 | + &good.UpdateAt, | ||
| 100 | + &good.DeleteAt, | ||
| 101 | ), | 101 | ), |
| 102 | - fmt.Sprintf("UPDATE goodss SET %s WHERE goods_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | ||
| 103 | - goods.GoodsId, | ||
| 104 | - goods.GoodsNum, | ||
| 105 | - goods.GoodsDividend, | ||
| 106 | - goods.GoodsDividendStatus, | ||
| 107 | - goods.GoodsName, | ||
| 108 | - goods.GoodsTotalPrice, | ||
| 109 | - goods.Remarks, | ||
| 110 | - goods.OrderNo, | ||
| 111 | - goods.GoodsDetail, | ||
| 112 | - goods.CreateAt, | ||
| 113 | - goods.UpdateAt, | ||
| 114 | - goods.DeleteAt, | ||
| 115 | - goods.Identify(), | 102 | + fmt.Sprintf("UPDATE good SET %s WHERE goods_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), |
| 103 | + good.GoodId, | ||
| 104 | + good.GoodNum, | ||
| 105 | + good.GoodDividend, | ||
| 106 | + good.GoodDividendStatus, | ||
| 107 | + good.GoodName, | ||
| 108 | + good.GoodTotalPrice, | ||
| 109 | + good.Remarks, | ||
| 110 | + good.OrderNo, | ||
| 111 | + good.GoodDetail, | ||
| 112 | + good.CreateAt, | ||
| 113 | + good.UpdateAt, | ||
| 114 | + good.DeleteAt, | ||
| 115 | + good.Identify(), | ||
| 116 | ); err != nil { | 116 | ); err != nil { |
| 117 | - return goods, err | 117 | + return good, err |
| 118 | } | 118 | } |
| 119 | } | 119 | } |
| 120 | - return goods, nil | 120 | + return good, nil |
| 121 | } | 121 | } |
| 122 | -func (repository *GoodsRepository) Remove(goods *domain.Goods) (*domain.Goods, error) { | 122 | +func (repository *GoodRepository) Remove(good *domain.Good) (*domain.Good, error) { |
| 123 | tx := repository.transactionContext.PgTx | 123 | tx := repository.transactionContext.PgTx |
| 124 | - goodsModel := new(models.Goods) | ||
| 125 | - goodsModel.GoodsId = goods.Identify().(int64) | ||
| 126 | - if _, err := tx.Model(goodsModel).WherePK().Delete(); err != nil { | ||
| 127 | - return goods, err | 124 | + goodModel := new(models.Good) |
| 125 | + goodModel.GoodId = good.Identify().(int64) | ||
| 126 | + if _, err := tx.Model(goodModel).WherePK().Delete(); err != nil { | ||
| 127 | + return good, err | ||
| 128 | } | 128 | } |
| 129 | - return goods, nil | 129 | + return good, nil |
| 130 | } | 130 | } |
| 131 | -func (repository *GoodsRepository) FindOne(queryOptions map[string]interface{}) (*domain.Goods, error) { | 131 | +func (repository *GoodRepository) FindOne(queryOptions map[string]interface{}) (*domain.Good, error) { |
| 132 | tx := repository.transactionContext.PgTx | 132 | tx := repository.transactionContext.PgTx |
| 133 | - goodsModel := new(models.Goods) | ||
| 134 | - query := sqlbuilder.BuildQuery(tx.Model(goodsModel), queryOptions) | ||
| 135 | - query.SetWhereByQueryOption("goods.goods_id = ?", "goodsId") | 133 | + goodModel := new(models.Good) |
| 134 | + query := sqlbuilder.BuildQuery(tx.Model(goodModel), queryOptions) | ||
| 135 | + query.SetWhereByQueryOption("good.goods_id = ?", "goodsId") | ||
| 136 | if err := query.First(); err != nil { | 136 | if err := query.First(); err != nil { |
| 137 | if err.Error() == "pg: no rows in result set" { | 137 | if err.Error() == "pg: no rows in result set" { |
| 138 | return nil, fmt.Errorf("没有此资源") | 138 | return nil, fmt.Errorf("没有此资源") |
| @@ -140,37 +140,37 @@ func (repository *GoodsRepository) FindOne(queryOptions map[string]interface{}) | @@ -140,37 +140,37 @@ func (repository *GoodsRepository) FindOne(queryOptions map[string]interface{}) | ||
| 140 | return nil, err | 140 | return nil, err |
| 141 | } | 141 | } |
| 142 | } | 142 | } |
| 143 | - if goodsModel.GoodsId == 0 { | 143 | + if goodModel.GoodId == 0 { |
| 144 | return nil, nil | 144 | return nil, nil |
| 145 | } else { | 145 | } else { |
| 146 | - return transform.TransformToGoodsDomainModelFromPgModels(goodsModel) | 146 | + return transform.TransformToGoodDomainModelFromPgModels(goodModel) |
| 147 | } | 147 | } |
| 148 | } | 148 | } |
| 149 | -func (repository *GoodsRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Goods, error) { | 149 | +func (repository *GoodRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Good, error) { |
| 150 | tx := repository.transactionContext.PgTx | 150 | tx := repository.transactionContext.PgTx |
| 151 | - var goodsModels []*models.Goods | ||
| 152 | - goodss := make([]*domain.Goods, 0) | ||
| 153 | - query := sqlbuilder.BuildQuery(tx.Model(&goodsModels), queryOptions) | 151 | + var goodModels []*models.Good |
| 152 | + goods := make([]*domain.Good, 0) | ||
| 153 | + query := sqlbuilder.BuildQuery(tx.Model(&goodModels), queryOptions) | ||
| 154 | query.SetOffsetAndLimit(20) | 154 | query.SetOffsetAndLimit(20) |
| 155 | query.SetOrderDirect("goods_id", "DESC") | 155 | query.SetOrderDirect("goods_id", "DESC") |
| 156 | if count, err := query.SelectAndCount(); err != nil { | 156 | if count, err := query.SelectAndCount(); err != nil { |
| 157 | - return 0, goodss, err | 157 | + return 0, goods, err |
| 158 | } else { | 158 | } else { |
| 159 | - for _, goodsModel := range goodsModels { | ||
| 160 | - if goods, err := transform.TransformToGoodsDomainModelFromPgModels(goodsModel); err != nil { | ||
| 161 | - return 0, goodss, err | 159 | + for _, goodModel := range goodModels { |
| 160 | + if good, err := transform.TransformToGoodDomainModelFromPgModels(goodModel); err != nil { | ||
| 161 | + return 0, goods, err | ||
| 162 | } else { | 162 | } else { |
| 163 | - goodss = append(goodss, goods) | 163 | + goods = append(goods, good) |
| 164 | } | 164 | } |
| 165 | } | 165 | } |
| 166 | - return int64(count), goodss, nil | 166 | + return int64(count), goods, nil |
| 167 | } | 167 | } |
| 168 | } | 168 | } |
| 169 | -func NewGoodsRepository(transactionContext *pgTransaction.TransactionContext) (*GoodsRepository, error) { | 169 | +func NewGoodsRepository(transactionContext *pgTransaction.TransactionContext) (*GoodRepository, error) { |
| 170 | if transactionContext == nil { | 170 | if transactionContext == nil { |
| 171 | return nil, fmt.Errorf("transactionContext参数不能为nil") | 171 | return nil, fmt.Errorf("transactionContext参数不能为nil") |
| 172 | } else { | 172 | } else { |
| 173 | - return &GoodsRepository{ | 173 | + return &GoodRepository{ |
| 174 | transactionContext: transactionContext, | 174 | transactionContext: transactionContext, |
| 175 | }, nil | 175 | }, nil |
| 176 | } | 176 | } |
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/linmadan/egglib-go/web/beego" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/command" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/query" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/service" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +type CompanyController struct { | ||
| 11 | + beego.BaseController | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +func (controller *CompanyController) CreateCompany() { | ||
| 15 | + companyService := service.NewCompanyService(nil) | ||
| 16 | + createCompanyCommand := &command.CreateCompanyCommand{} | ||
| 17 | + controller.Unmarshal(createCompanyCommand) | ||
| 18 | + data, err := companyService.CreateCompany(createCompanyCommand) | ||
| 19 | + controller.Response(data, err) | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (controller *CompanyController) UpdateCompany() { | ||
| 23 | + companyService := service.NewCompanyService(nil) | ||
| 24 | + updateCompanyCommand := &command.UpdateCompanyCommand{} | ||
| 25 | + controller.Unmarshal(updateCompanyCommand) | ||
| 26 | + companyId, _ := controller.GetInt64(":companyId") | ||
| 27 | + updateCompanyCommand.CompanyId = companyId | ||
| 28 | + data, err := companyService.UpdateCompany(updateCompanyCommand) | ||
| 29 | + controller.Response(data, err) | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (controller *CompanyController) GetCompany() { | ||
| 33 | + companyService := service.NewCompanyService(nil) | ||
| 34 | + getCompanyQuery := &query.GetCompanyQuery{} | ||
| 35 | + companyId, _ := controller.GetInt64(":companyId") | ||
| 36 | + getCompanyQuery.CompanyId = companyId | ||
| 37 | + data, err := companyService.GetCompany(getCompanyQuery) | ||
| 38 | + controller.Response(data, err) | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +func (controller *CompanyController) RemoveCompany() { | ||
| 42 | + companyService := service.NewCompanyService(nil) | ||
| 43 | + removeCompanyCommand := &command.RemoveCompanyCommand{} | ||
| 44 | + controller.Unmarshal(removeCompanyCommand) | ||
| 45 | + companyId, _ := controller.GetInt64(":companyId") | ||
| 46 | + removeCompanyCommand.CompanyId = companyId | ||
| 47 | + data, err := companyService.RemoveCompany(removeCompanyCommand) | ||
| 48 | + controller.Response(data, err) | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | +func (controller *CompanyController) ListCompany() { | ||
| 52 | + companyService := service.NewCompanyService(nil) | ||
| 53 | + listCompanyQuery := &query.ListCompanyQuery{} | ||
| 54 | + offset, _ := controller.GetInt("offset") | ||
| 55 | + listCompanyQuery.Offset = offset | ||
| 56 | + limit, _ := controller.GetInt("limit") | ||
| 57 | + listCompanyQuery.Limit = limit | ||
| 58 | + data, err := companyService.ListCompany(listCompanyQuery) | ||
| 59 | + controller.Response(data, err) | ||
| 60 | +} | ||
| 61 | + | ||
| 62 | +func (controller *CompanyController) ConvertCompanyStatus() { | ||
| 63 | + companyService := service.NewCompanyService(nil) | ||
| 64 | + convertCompanyStatusCommand := &command.ConvertCompanyStatusCommand{} | ||
| 65 | + controller.Unmarshal(convertCompanyStatusCommand) | ||
| 66 | + data, err := companyService.ConvertCompanyStatus(convertCompanyStatusCommand) | ||
| 67 | + controller.Response(data, err) | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +func (controller *CompanyController) SetCompanyAdmin() { | ||
| 71 | + companyService := service.NewCompanyService(nil) | ||
| 72 | + setCompanyAdminCommand := &command.SetCompanyAdminCommand{} | ||
| 73 | + controller.Unmarshal(setCompanyAdminCommand) | ||
| 74 | + data, err := companyService.SetCompanyAdmin(setCompanyAdminCommand) | ||
| 75 | + controller.Response(data, err) | ||
| 76 | +} |
| @@ -14,7 +14,7 @@ type OrderController struct { | @@ -14,7 +14,7 @@ type OrderController struct { | ||
| 14 | func (controller *OrderController) CreateOrder() { | 14 | func (controller *OrderController) CreateOrder() { |
| 15 | orderService := service.NewOrderService(nil) | 15 | orderService := service.NewOrderService(nil) |
| 16 | createOrderCommand := &command.CreateOrderCommand{} | 16 | createOrderCommand := &command.CreateOrderCommand{} |
| 17 | - controller.Unmarshal(createOrderCommand) | 17 | + _ = controller.Unmarshal(createOrderCommand) |
| 18 | data, err := orderService.CreateOrder(createOrderCommand) | 18 | data, err := orderService.CreateOrder(createOrderCommand) |
| 19 | controller.Response(data, err) | 19 | controller.Response(data, err) |
| 20 | } | 20 | } |
pkg/port/beego/routers/company_router.go
0 → 100644
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/beego/beego/v2/server/web" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + web.Router("/companies/", &controllers.CompanyController{}, "Post:CreateCompany") | ||
| 10 | + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Put:UpdateCompany") | ||
| 11 | + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Get:GetCompany") | ||
| 12 | + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Delete:RemoveCompany") | ||
| 13 | + web.Router("/companies/", &controllers.CompanyController{}, "Get:ListCompany") | ||
| 14 | + web.Router("/companies/convertCompanyStatus", &controllers.CompanyController{}, "Post:ConvertCompanyStatus") | ||
| 15 | + web.Router("/companies/setCompanyAdmin", &controllers.CompanyController{}, "Post:SetCompanyAdmin") | ||
| 16 | +} |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + "net/http/httptest" | ||
| 6 | + "testing" | ||
| 7 | + | ||
| 8 | + "github.com/beego/beego/v2/server/web" | ||
| 9 | + . "github.com/onsi/ginkgo" | ||
| 10 | + . "github.com/onsi/gomega" | ||
| 11 | + _ "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 12 | + _ "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/port/beego" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +func TestCompany(t *testing.T) { | ||
| 16 | + RegisterFailHandler(Fail) | ||
| 17 | + RunSpecs(t, "Beego Port Company Correlations Test Case Suite") | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +var handler http.Handler | ||
| 21 | +var server *httptest.Server | ||
| 22 | + | ||
| 23 | +var _ = BeforeSuite(func() { | ||
| 24 | + handler = web.BeeApp.Handlers | ||
| 25 | + server = httptest.NewServer(handler) | ||
| 26 | +}) | ||
| 27 | + | ||
| 28 | +var _ = AfterSuite(func() { | ||
| 29 | + server.Close() | ||
| 30 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("公司状态转换 禁用、启用", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("公司状态转换 禁用、启用", func() { | ||
| 22 | + Context("", func() { | ||
| 23 | + It("", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + body := map[string]interface{}{ | ||
| 26 | + "companyId": "int64", | ||
| 27 | + "status": "int64", | ||
| 28 | + } | ||
| 29 | + httpExpect.POST("/companys/convertCompanyStatus"). | ||
| 30 | + WithJSON(body). | ||
| 31 | + Expect(). | ||
| 32 | + Status(http.StatusOK). | ||
| 33 | + JSON(). | ||
| 34 | + Object(). | ||
| 35 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 36 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 37 | + ContainsKey("data").Value("data").Object() | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | + }) | ||
| 41 | + AfterEach(func() { | ||
| 42 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 43 | + Expect(err).NotTo(HaveOccurred()) | ||
| 44 | + }) | ||
| 45 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("创建", func() { | ||
| 13 | + Describe("提交数据创建", func() { | ||
| 14 | + Context("提交正确的新公司信息数据", func() { | ||
| 15 | + It("返回公司信息数据", func() { | ||
| 16 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 17 | + body := map[string]interface{}{ | ||
| 18 | + "name": "string", | ||
| 19 | + "abbreviation": "string", | ||
| 20 | + "status": "int64", | ||
| 21 | + "remarks": "string", | ||
| 22 | + "userAccount": "string", | ||
| 23 | + "userName": "string", | ||
| 24 | + } | ||
| 25 | + httpExpect.POST("/companys/"). | ||
| 26 | + WithJSON(body). | ||
| 27 | + Expect(). | ||
| 28 | + Status(http.StatusOK). | ||
| 29 | + JSON(). | ||
| 30 | + Object(). | ||
| 31 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 32 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 33 | + ContainsKey("data").Value("data").Object(). | ||
| 34 | + ContainsKey("companyId").ValueNotEqual("companyId", BeZero()) | ||
| 35 | + }) | ||
| 36 | + }) | ||
| 37 | + }) | ||
| 38 | + AfterEach(func() { | ||
| 39 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 40 | + Expect(err).NotTo(HaveOccurred()) | ||
| 41 | + }) | ||
| 42 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("返回", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("根据companyId参数返回公司信息", func() { | ||
| 22 | + Context("传入有效的companyId", func() { | ||
| 23 | + It("返回公司信息数据", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + httpExpect.GET("/companys/{companyId}"). | ||
| 26 | + Expect(). | ||
| 27 | + Status(http.StatusOK). | ||
| 28 | + JSON(). | ||
| 29 | + Object(). | ||
| 30 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 31 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 32 | + ContainsKey("data").Value("data").Object() | ||
| 33 | + }) | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + AfterEach(func() { | ||
| 37 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 38 | + Expect(err).NotTo(HaveOccurred()) | ||
| 39 | + }) | ||
| 40 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("返回列表", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("根据参数返回公司信息列表", func() { | ||
| 22 | + Context("传入有效的参数", func() { | ||
| 23 | + It("返回公司信息数据列表", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + httpExpect.GET("/companys/"). | ||
| 26 | + WithQuery("offset", "int"). | ||
| 27 | + WithQuery("limit", "int"). | ||
| 28 | + Expect(). | ||
| 29 | + Status(http.StatusOK). | ||
| 30 | + JSON(). | ||
| 31 | + Object(). | ||
| 32 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 33 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 34 | + ContainsKey("data").Value("data").Object(). | ||
| 35 | + ContainsKey("count").ValueEqual("count", 1). | ||
| 36 | + ContainsKey("companys").Value("companys").Array() | ||
| 37 | + }) | ||
| 38 | + }) | ||
| 39 | + }) | ||
| 40 | + AfterEach(func() { | ||
| 41 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 42 | + Expect(err).NotTo(HaveOccurred()) | ||
| 43 | + }) | ||
| 44 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("移除", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("根据参数移除", func() { | ||
| 22 | + Context("传入有效的companyId", func() { | ||
| 23 | + It("返回被移除公司信息的数据", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + httpExpect.DELETE("/companys/{companyId}"). | ||
| 26 | + Expect(). | ||
| 27 | + Status(http.StatusOK). | ||
| 28 | + JSON(). | ||
| 29 | + Object(). | ||
| 30 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 31 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 32 | + ContainsKey("data").Value("data").Object() | ||
| 33 | + }) | ||
| 34 | + }) | ||
| 35 | + }) | ||
| 36 | + AfterEach(func() { | ||
| 37 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 38 | + Expect(err).NotTo(HaveOccurred()) | ||
| 39 | + }) | ||
| 40 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("设置公司管理员", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("设置公司管理员", func() { | ||
| 22 | + Context("", func() { | ||
| 23 | + It("", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + body := map[string]interface{}{ | ||
| 26 | + "companyId": "int64", | ||
| 27 | + "userAccount": "string", | ||
| 28 | + "userName": "string", | ||
| 29 | + } | ||
| 30 | + httpExpect.POST("/companys/setCompanyAdmin"). | ||
| 31 | + WithJSON(body). | ||
| 32 | + Expect(). | ||
| 33 | + Status(http.StatusOK). | ||
| 34 | + JSON(). | ||
| 35 | + Object(). | ||
| 36 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 37 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 38 | + ContainsKey("data").Value("data").Object() | ||
| 39 | + }) | ||
| 40 | + }) | ||
| 41 | + }) | ||
| 42 | + AfterEach(func() { | ||
| 43 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 44 | + Expect(err).NotTo(HaveOccurred()) | ||
| 45 | + }) | ||
| 46 | +}) |
| 1 | +package company | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + . "github.com/onsi/ginkgo" | ||
| 8 | + . "github.com/onsi/gomega" | ||
| 9 | + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +var _ = Describe("更新", func() { | ||
| 13 | + var companyId int64 | ||
| 14 | + BeforeEach(func() { | ||
| 15 | + _, err := pG.DB.QueryOne( | ||
| 16 | + pg.Scan(&companyId), | ||
| 17 | + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id", | ||
| 18 | + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 19 | + Expect(err).NotTo(HaveOccurred()) | ||
| 20 | + }) | ||
| 21 | + Describe("提交数据更新", func() { | ||
| 22 | + Context("提交正确的公司信息数据", func() { | ||
| 23 | + It("返回更新后的公司信息数据", func() { | ||
| 24 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 25 | + body := map[string]interface{}{ | ||
| 26 | + "name": "string", | ||
| 27 | + "abbreviation": "string", | ||
| 28 | + "status": "int64", | ||
| 29 | + "remarks": "string", | ||
| 30 | + "userAccount": "string", | ||
| 31 | + "userName": "string", | ||
| 32 | + } | ||
| 33 | + httpExpect.PUT("/companys/{companyId}"). | ||
| 34 | + WithJSON(body). | ||
| 35 | + Expect(). | ||
| 36 | + Status(http.StatusOK). | ||
| 37 | + JSON(). | ||
| 38 | + Object(). | ||
| 39 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 40 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 41 | + ContainsKey("data").Value("data").Object(). | ||
| 42 | + ContainsKey("companyId").ValueEqual("companyId", companyId) | ||
| 43 | + }) | ||
| 44 | + }) | ||
| 45 | + }) | ||
| 46 | + AfterEach(func() { | ||
| 47 | + _, err := pG.DB.Exec("DELETE FROM companys WHERE true") | ||
| 48 | + Expect(err).NotTo(HaveOccurred()) | ||
| 49 | + }) | ||
| 50 | +}) |
| @@ -16,12 +16,13 @@ var _ = FDescribe("创建订单增删改查", func() { | @@ -16,12 +16,13 @@ var _ = FDescribe("创建订单增删改查", func() { | ||
| 16 | httpExpect := httpexpect.New(GinkgoT(), server.URL) | 16 | httpExpect := httpexpect.New(GinkgoT(), server.URL) |
| 17 | body := map[string]interface{}{ | 17 | body := map[string]interface{}{ |
| 18 | "orderNo": "string", | 18 | "orderNo": "string", |
| 19 | - "companyId": "int64", | 19 | + "companyId": 1, |
| 20 | "buyerName": "string", | 20 | "buyerName": "string", |
| 21 | "contactInfo": "string", | 21 | "contactInfo": "string", |
| 22 | "shippingAddress": "string", | 22 | "shippingAddress": "string", |
| 23 | - "orderNum": "int64", | ||
| 24 | - "totalPrice": "float64", | 23 | + "orderNum": 10, |
| 24 | + "totalPrice": 10, | ||
| 25 | + "partnerId": "1213", | ||
| 25 | } | 26 | } |
| 26 | httpExpect.POST("/orders/"). | 27 | httpExpect.POST("/orders/"). |
| 27 | WithJSON(body). | 28 | WithJSON(body). |
| @@ -10,14 +10,21 @@ import ( | @@ -10,14 +10,21 @@ import ( | ||
| 10 | pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" | 10 | pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg" |
| 11 | ) | 11 | ) |
| 12 | 12 | ||
| 13 | -var _ = Describe("返回订单增删改查", func() { | 13 | +var _ = FDescribe("返回订单增删改查", func() { |
| 14 | var orderId int64 | 14 | var orderId int64 |
| 15 | BeforeEach(func() { | 15 | BeforeEach(func() { |
| 16 | - _, err := pG.DB.QueryOne( | 16 | + // 新增合伙人测试数据 |
| 17 | + _, err1 := pG.DB.QueryOne( | ||
| 18 | + pg.Scan(), | ||
| 19 | + "", | ||
| 20 | + "") | ||
| 21 | + Expect(err1).NotTo(HaveOccurred()) | ||
| 22 | + // 新增订单测试数据 | ||
| 23 | + _, err2 := pG.DB.QueryOne( | ||
| 17 | pg.Scan(&orderId), | 24 | pg.Scan(&orderId), |
| 18 | - "INSERT INTO orders (order_id, buyer, company_id, partner_id, delivery_code, is_disable, order_no, order_detail, order_dividend, order_dividend_status, order_goods, order_source, order_type, order_status, total_price, region_info, remarks, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING order_id", | ||
| 19 | - "testOrderId", "testBuyer", "testCompanyId", "testPartnerId", "testDeliveryCode", "testIsDisable", "testOrderNo", "testOrderDetail", "testOrderDividend", "testOrderDividendStatus", "testOrderGoods", "testOrderSource", "testOrderType", "testOrderStatus", "testTotalPrice", "testRegionInfo", "testRemarks", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 20 | - Expect(err).NotTo(HaveOccurred()) | 25 | + "INSERT INTO orders ( buyer, company_id, partner_id, delivery_code, is_disable, order_no, order_detail, order_dividend, order_dividend_status, order_goods, order_source, order_type, order_status, total_price, region_info, remarks, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING order_id", |
| 26 | + "testBuyer", 1, "testPartnerId", "testDeliveryCode", false, "testOrderNo", "testOrderDetail", "testOrderDividend", "testOrderDividendStatus", "testOrderGoods", "testOrderSource", "testOrderType", "testOrderStatus", "testTotalPrice", "testRegionInfo", "testRemarks", "testCreateAt", "testUpdateAt", "testDeleteAt") | ||
| 27 | + Expect(err2).NotTo(HaveOccurred()) | ||
| 21 | }) | 28 | }) |
| 22 | Describe("根据orderId参数返回订单实体", func() { | 29 | Describe("根据orderId参数返回订单实体", func() { |
| 23 | Context("传入有效的orderId", func() { | 30 | Context("传入有效的orderId", func() { |
| 1 | +package order |
-
请 注册 或 登录 后发表评论