Merge branch 'dev' of http://gitlab.fjmaimaimai.com/mmm-go-pp/partner01 into feat/order-domain
merge
正在显示
28 个修改的文件
包含
1084 行增加
和
46 行删除
document/partner01/schemas/companyAdmin.yaml
0 → 100644
@@ -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 | +} |
@@ -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 | } |
@@ -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 | } |
@@ -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) { |
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 | +} |
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 | +}) |
-
请 注册 或 登录 后发表评论