正在显示
36 个修改的文件
包含
1226 行增加
和
261 行删除
1 | +package factory | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/core/application" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | ||
6 | +) | ||
7 | + | ||
8 | +// FastPgWorkshop 快速返回车间对象 | ||
9 | +// | ||
10 | +// transactionContext 事务 | ||
11 | +// id 对象唯一标识 | ||
12 | +func FastPgWorkshop(transactionContext application.TransactionContext, id int, options ...option) (domain.WorkshopRepository, *domain.Workshop, error) { | ||
13 | + var rep domain.WorkshopRepository | ||
14 | + var mod *domain.Workshop | ||
15 | + var err error | ||
16 | + if value, err := CreateWorkshopRepository(map[string]interface{}{ | ||
17 | + "transactionContext": transactionContext, | ||
18 | + }); err != nil { | ||
19 | + return nil, nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
20 | + } else { | ||
21 | + rep = value | ||
22 | + } | ||
23 | + if id > 0 { | ||
24 | + if mod, err = rep.FindOne(map[string]interface{}{"workshopId": id}); err != nil { | ||
25 | + if err == domain.ErrorNotFound { | ||
26 | + return nil, nil, application.ThrowError(application.RES_NO_FIND_ERROR, "该车间不存在") | ||
27 | + } | ||
28 | + return nil, nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
29 | + } | ||
30 | + } | ||
31 | + //if err = fastPgDataAuth(transactionContext, mod, options...); err != nil { | ||
32 | + // return nil, nil, err | ||
33 | + //} | ||
34 | + return rep, mod, err | ||
35 | +} | ||
36 | + | ||
37 | +/***** 2.配置 *****/ | ||
38 | + | ||
39 | +type FastOptions struct { | ||
40 | + DataAuthRequired bool | ||
41 | + OperateInfo *domain.OperateInfo | ||
42 | +} | ||
43 | + | ||
44 | +func NewFastOptions(options ...option) *FastOptions { | ||
45 | + o := &FastOptions{ | ||
46 | + DataAuthRequired: false, | ||
47 | + } | ||
48 | + for i := 0; i < len(options); i++ { | ||
49 | + options[i](o) | ||
50 | + } | ||
51 | + return o | ||
52 | +} | ||
53 | + | ||
54 | +type option func(options *FastOptions) | ||
55 | + | ||
56 | +// 需要数据权限 | ||
57 | +func WithDataAuthRequired() option { | ||
58 | + return func(options *FastOptions) { | ||
59 | + options.DataAuthRequired = true | ||
60 | + } | ||
61 | +} | ||
62 | + | ||
63 | +// WithOperator 操作人 | ||
64 | +func WithOperator(op *domain.OperateInfo) option { | ||
65 | + return func(options *FastOptions) { | ||
66 | + options.OperateInfo = op | ||
67 | + } | ||
68 | +} |
@@ -16,7 +16,7 @@ type CreateProductLineCommand struct { | @@ -16,7 +16,7 @@ type CreateProductLineCommand struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (createProductLineCommand *CreateProductLineCommand) Valid(validation *validation.Validation) { | 18 | func (createProductLineCommand *CreateProductLineCommand) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (createProductLineCommand *CreateProductLineCommand) ValidateCommand() error { | 22 | func (createProductLineCommand *CreateProductLineCommand) ValidateCommand() error { |
@@ -16,7 +16,7 @@ type RemoveProductLineCommand struct { | @@ -16,7 +16,7 @@ type RemoveProductLineCommand struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (removeProductLineCommand *RemoveProductLineCommand) Valid(validation *validation.Validation) { | 18 | func (removeProductLineCommand *RemoveProductLineCommand) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (removeProductLineCommand *RemoveProductLineCommand) ValidateCommand() error { | 22 | func (removeProductLineCommand *RemoveProductLineCommand) ValidateCommand() error { |
@@ -18,7 +18,7 @@ type UpdateProductLineCommand struct { | @@ -18,7 +18,7 @@ type UpdateProductLineCommand struct { | ||
18 | } | 18 | } |
19 | 19 | ||
20 | func (updateProductLineCommand *UpdateProductLineCommand) Valid(validation *validation.Validation) { | 20 | func (updateProductLineCommand *UpdateProductLineCommand) Valid(validation *validation.Validation) { |
21 | - validation.SetError("CustomValid", "未实现的自定义认证") | 21 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
22 | } | 22 | } |
23 | 23 | ||
24 | func (updateProductLineCommand *UpdateProductLineCommand) ValidateCommand() error { | 24 | func (updateProductLineCommand *UpdateProductLineCommand) ValidateCommand() error { |
@@ -16,7 +16,7 @@ type GetProductLineQuery struct { | @@ -16,7 +16,7 @@ type GetProductLineQuery struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (getProductLineQuery *GetProductLineQuery) Valid(validation *validation.Validation) { | 18 | func (getProductLineQuery *GetProductLineQuery) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (getProductLineQuery *GetProductLineQuery) ValidateQuery() error { | 22 | func (getProductLineQuery *GetProductLineQuery) ValidateQuery() error { |
@@ -16,7 +16,7 @@ type ListProductLineQuery struct { | @@ -16,7 +16,7 @@ type ListProductLineQuery struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (listProductLineQuery *ListProductLineQuery) Valid(validation *validation.Validation) { | 18 | func (listProductLineQuery *ListProductLineQuery) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (listProductLineQuery *ListProductLineQuery) ValidateQuery() error { | 22 | func (listProductLineQuery *ListProductLineQuery) ValidateQuery() error { |
@@ -2,10 +2,12 @@ package service | @@ -2,10 +2,12 @@ package service | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "github.com/linmadan/egglib-go/core/application" | 4 | "github.com/linmadan/egglib-go/core/application" |
5 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
5 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory" |
6 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productLine/command" | 7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productLine/command" |
7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productLine/query" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productLine/query" |
8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | 9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" |
10 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/dao" | ||
9 | ) | 11 | ) |
10 | 12 | ||
11 | // 生产线服务 | 13 | // 生产线服务 |
@@ -27,26 +29,34 @@ func (productLineService *ProductLineService) CreateProductLine(createProductLin | @@ -27,26 +29,34 @@ func (productLineService *ProductLineService) CreateProductLine(createProductLin | ||
27 | defer func() { | 29 | defer func() { |
28 | transactionContext.RollbackTransaction() | 30 | transactionContext.RollbackTransaction() |
29 | }() | 31 | }() |
32 | + | ||
33 | + uniqueIdDao, _ := dao.NewUniqueIdDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
34 | + uniqueId, err := uniqueIdDao.GenerateUniqueId() | ||
35 | + if err != nil { | ||
36 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
37 | + } | ||
30 | newProductLine := &domain.ProductLine{ | 38 | newProductLine := &domain.ProductLine{ |
31 | - //WorkshopId: createProductLineCommand.WorkshopId, | 39 | + LineId: uniqueId, |
32 | LineName: createProductLineCommand.LineName, | 40 | LineName: createProductLineCommand.LineName, |
41 | + ProductSections: []*domain.ProductSection{}, | ||
42 | + Removed: domain.NotDeleted, | ||
43 | + } | ||
44 | + | ||
45 | + var workshopRepository domain.WorkshopRepository | ||
46 | + var workshop *domain.Workshop | ||
47 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, createProductLineCommand.WorkshopId) | ||
48 | + if err != nil { | ||
49 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
50 | + } | ||
51 | + if err = workshop.AddLine(newProductLine); err != nil { | ||
52 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
53 | + } | ||
54 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
55 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
56 | + } | ||
57 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
58 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
33 | } | 59 | } |
34 | - //var productLineRepository domain | ||
35 | - //if value, err := factory.CreateProductLineRepository(map[string]interface{}{ | ||
36 | - // "transactionContext": transactionContext, | ||
37 | - //}); err != nil { | ||
38 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
39 | - //} else { | ||
40 | - // productLineRepository = value | ||
41 | - //} | ||
42 | - //if productLine, err := productLineRepository.Save(newProductLine); err != nil { | ||
43 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
44 | - //} else { | ||
45 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
46 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
47 | - // } | ||
48 | - // return productLine, nil | ||
49 | - //} | ||
50 | return newProductLine, nil | 60 | return newProductLine, nil |
51 | } | 61 | } |
52 | 62 | ||
@@ -65,27 +75,20 @@ func (productLineService *ProductLineService) GetProductLine(getProductLineQuery | @@ -65,27 +75,20 @@ func (productLineService *ProductLineService) GetProductLine(getProductLineQuery | ||
65 | defer func() { | 75 | defer func() { |
66 | transactionContext.RollbackTransaction() | 76 | transactionContext.RollbackTransaction() |
67 | }() | 77 | }() |
68 | - //var productLineRepository productLine.ProductLineRepository | ||
69 | - //if value, err := factory.CreateProductLineRepository(map[string]interface{}{ | ||
70 | - // "transactionContext": transactionContext, | ||
71 | - //}); err != nil { | ||
72 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
73 | - //} else { | ||
74 | - // productLineRepository = value | ||
75 | - //} | ||
76 | - //productLine, err := productLineRepository.FindOne(map[string]interface{}{"productLineId": getProductLineQuery.ProductLineId}) | ||
77 | - //if err != nil { | ||
78 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
79 | - //} | ||
80 | - //if productLine == nil { | ||
81 | - // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getProductLineQuery.ProductLineId))) | ||
82 | - //} else { | ||
83 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
84 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
85 | - // } | ||
86 | - // return productLine, nil | ||
87 | - //} | ||
88 | - return nil, nil | 78 | + //var workshopRepository domain.WorkshopRepository |
79 | + var workshop *domain.Workshop | ||
80 | + _, workshop, err = factory.FastPgWorkshop(transactionContext, getProductLineQuery.WorkshopId) | ||
81 | + if err != nil { | ||
82 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
83 | + } | ||
84 | + line, err := workshop.FindLine(getProductLineQuery.LineId) | ||
85 | + if err != nil { | ||
86 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
87 | + } | ||
88 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
89 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
90 | + } | ||
91 | + return line, nil | ||
89 | } | 92 | } |
90 | 93 | ||
91 | // 返回生产线列表 | 94 | // 返回生产线列表 |
@@ -140,30 +143,22 @@ func (productLineService *ProductLineService) RemoveProductLine(removeProductLin | @@ -140,30 +143,22 @@ func (productLineService *ProductLineService) RemoveProductLine(removeProductLin | ||
140 | defer func() { | 143 | defer func() { |
141 | transactionContext.RollbackTransaction() | 144 | transactionContext.RollbackTransaction() |
142 | }() | 145 | }() |
143 | - //var productLineRepository productLine.ProductLineRepository | ||
144 | - //if value, err := factory.CreateProductLineRepository(map[string]interface{}{ | ||
145 | - // "transactionContext": transactionContext, | ||
146 | - //}); err != nil { | ||
147 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
148 | - //} else { | ||
149 | - // productLineRepository = value | ||
150 | - //} | ||
151 | - //productLine, err := productLineRepository.FindOne(map[string]interface{}{"productLineId": removeProductLineCommand.ProductLineId}) | ||
152 | - //if err != nil { | ||
153 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
154 | - //} | ||
155 | - //if productLine == nil { | ||
156 | - // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeProductLineCommand.ProductLineId))) | ||
157 | - //} | ||
158 | - //if productLine, err := productLineRepository.Remove(productLine); err != nil { | ||
159 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
160 | - //} else { | ||
161 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
162 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
163 | - // } | ||
164 | - // return productLine, nil | ||
165 | - //} | ||
166 | - return nil, nil | 146 | + var workshopRepository domain.WorkshopRepository |
147 | + var workshop *domain.Workshop | ||
148 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, removeProductLineCommand.WorkshopId) | ||
149 | + if err != nil { | ||
150 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
151 | + } | ||
152 | + if _, err = workshop.RemoveLine(removeProductLineCommand.LineId); err != nil { | ||
153 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
154 | + } | ||
155 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
156 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
157 | + } | ||
158 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
159 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
160 | + } | ||
161 | + return struct{}{}, nil | ||
167 | } | 162 | } |
168 | 163 | ||
169 | // 更新生产线 | 164 | // 更新生产线 |
@@ -181,33 +176,22 @@ func (productLineService *ProductLineService) UpdateProductLine(updateProductLin | @@ -181,33 +176,22 @@ func (productLineService *ProductLineService) UpdateProductLine(updateProductLin | ||
181 | defer func() { | 176 | defer func() { |
182 | transactionContext.RollbackTransaction() | 177 | transactionContext.RollbackTransaction() |
183 | }() | 178 | }() |
184 | - //var productLineRepository productLine.ProductLineRepository | ||
185 | - //if value, err := factory.CreateProductLineRepository(map[string]interface{}{ | ||
186 | - // "transactionContext": transactionContext, | ||
187 | - //}); err != nil { | ||
188 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
189 | - //} else { | ||
190 | - // productLineRepository = value | ||
191 | - //} | ||
192 | - //productLine, err := productLineRepository.FindOne(map[string]interface{}{"productLineId": updateProductLineCommand.ProductLineId}) | ||
193 | - //if err != nil { | ||
194 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
195 | - //} | ||
196 | - //if productLine == nil { | ||
197 | - // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateProductLineCommand.ProductLineId))) | ||
198 | - //} | ||
199 | - //if err := productLine.Update(tool_funs.SimpleStructToMap(updateProductLineCommand)); err != nil { | ||
200 | - // return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
201 | - //} | ||
202 | - //if productLine, err := productLineRepository.Save(productLine); err != nil { | ||
203 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
204 | - //} else { | ||
205 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
206 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
207 | - // } | ||
208 | - // return productLine, nil | ||
209 | - //} | ||
210 | - return nil, nil | 179 | + var workshopRepository domain.WorkshopRepository |
180 | + var workshop *domain.Workshop | ||
181 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, updateProductLineCommand.WorkshopId) | ||
182 | + if err != nil { | ||
183 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
184 | + } | ||
185 | + if err = workshop.UpdateLine(updateProductLineCommand.LineId, updateProductLineCommand.LineName); err != nil { | ||
186 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
187 | + } | ||
188 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
189 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
190 | + } | ||
191 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
192 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
193 | + } | ||
194 | + return updateProductLineCommand, nil | ||
211 | } | 195 | } |
212 | 196 | ||
213 | func NewProductLineService(options map[string]interface{}) *ProductLineService { | 197 | func NewProductLineService(options map[string]interface{}) *ProductLineService { |
@@ -18,7 +18,7 @@ type CreateProductSectionCommand struct { | @@ -18,7 +18,7 @@ type CreateProductSectionCommand struct { | ||
18 | } | 18 | } |
19 | 19 | ||
20 | func (createProductSectionCommand *CreateProductSectionCommand) Valid(validation *validation.Validation) { | 20 | func (createProductSectionCommand *CreateProductSectionCommand) Valid(validation *validation.Validation) { |
21 | - validation.SetError("CustomValid", "未实现的自定义认证") | 21 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
22 | } | 22 | } |
23 | 23 | ||
24 | func (createProductSectionCommand *CreateProductSectionCommand) ValidateCommand() error { | 24 | func (createProductSectionCommand *CreateProductSectionCommand) ValidateCommand() error { |
@@ -11,12 +11,14 @@ import ( | @@ -11,12 +11,14 @@ import ( | ||
11 | type RemoveProductSectionCommand struct { | 11 | type RemoveProductSectionCommand struct { |
12 | // 车间ID | 12 | // 车间ID |
13 | WorkshopId int `cname:"车间ID" json:"workshopId" valid:"Required"` | 13 | WorkshopId int `cname:"车间ID" json:"workshopId" valid:"Required"` |
14 | + // 生产线ID | ||
15 | + LineId int `cname:"生产线ID" json:"lineId" valid:"Required"` | ||
14 | // 工段ID | 16 | // 工段ID |
15 | SectionId int `cname:"工段ID" json:"sectionId" valid:"Required"` | 17 | SectionId int `cname:"工段ID" json:"sectionId" valid:"Required"` |
16 | } | 18 | } |
17 | 19 | ||
18 | func (removeProductSectionCommand *RemoveProductSectionCommand) Valid(validation *validation.Validation) { | 20 | func (removeProductSectionCommand *RemoveProductSectionCommand) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 21 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 22 | } |
21 | 23 | ||
22 | func (removeProductSectionCommand *RemoveProductSectionCommand) ValidateCommand() error { | 24 | func (removeProductSectionCommand *RemoveProductSectionCommand) ValidateCommand() error { |
@@ -11,6 +11,8 @@ import ( | @@ -11,6 +11,8 @@ import ( | ||
11 | type UpdateProductSectionCommand struct { | 11 | type UpdateProductSectionCommand struct { |
12 | // 车间ID | 12 | // 车间ID |
13 | WorkshopId int `cname:"车间ID" json:"workshopId" valid:"Required"` | 13 | WorkshopId int `cname:"车间ID" json:"workshopId" valid:"Required"` |
14 | + // 生产线ID | ||
15 | + LineId int `cname:"生产线ID" json:"lineId" valid:"Required"` | ||
14 | // 工段ID | 16 | // 工段ID |
15 | SectionId int `cname:"工段ID" json:"sectionId" valid:"Required"` | 17 | SectionId int `cname:"工段ID" json:"sectionId" valid:"Required"` |
16 | // 工段名称 | 18 | // 工段名称 |
@@ -18,7 +20,7 @@ type UpdateProductSectionCommand struct { | @@ -18,7 +20,7 @@ type UpdateProductSectionCommand struct { | ||
18 | } | 20 | } |
19 | 21 | ||
20 | func (updateProductSectionCommand *UpdateProductSectionCommand) Valid(validation *validation.Validation) { | 22 | func (updateProductSectionCommand *UpdateProductSectionCommand) Valid(validation *validation.Validation) { |
21 | - validation.SetError("CustomValid", "未实现的自定义认证") | 23 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
22 | } | 24 | } |
23 | 25 | ||
24 | func (updateProductSectionCommand *UpdateProductSectionCommand) ValidateCommand() error { | 26 | func (updateProductSectionCommand *UpdateProductSectionCommand) ValidateCommand() error { |
@@ -16,7 +16,7 @@ type GetProductSectionQuery struct { | @@ -16,7 +16,7 @@ type GetProductSectionQuery struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (getProductSectionQuery *GetProductSectionQuery) Valid(validation *validation.Validation) { | 18 | func (getProductSectionQuery *GetProductSectionQuery) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (getProductSectionQuery *GetProductSectionQuery) ValidateQuery() error { | 22 | func (getProductSectionQuery *GetProductSectionQuery) ValidateQuery() error { |
@@ -16,7 +16,7 @@ type ListProductSectionQuery struct { | @@ -16,7 +16,7 @@ type ListProductSectionQuery struct { | ||
16 | } | 16 | } |
17 | 17 | ||
18 | func (listProductSectionQuery *ListProductSectionQuery) Valid(validation *validation.Validation) { | 18 | func (listProductSectionQuery *ListProductSectionQuery) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (listProductSectionQuery *ListProductSectionQuery) ValidateQuery() error { | 22 | func (listProductSectionQuery *ListProductSectionQuery) ValidateQuery() error { |
@@ -2,9 +2,12 @@ package service | @@ -2,9 +2,12 @@ package service | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "github.com/linmadan/egglib-go/core/application" | 4 | "github.com/linmadan/egglib-go/core/application" |
5 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
5 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/factory" |
6 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productSection/command" | 7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productSection/command" |
7 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productSection/query" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/productSection/query" |
9 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/dao" | ||
8 | ) | 11 | ) |
9 | 12 | ||
10 | // 工段服务 | 13 | // 工段服务 |
@@ -26,28 +29,32 @@ func (productSectionService *ProductSectionService) CreateProductSection(createP | @@ -26,28 +29,32 @@ func (productSectionService *ProductSectionService) CreateProductSection(createP | ||
26 | defer func() { | 29 | defer func() { |
27 | transactionContext.RollbackTransaction() | 30 | transactionContext.RollbackTransaction() |
28 | }() | 31 | }() |
29 | - //newProductSection := &productSection.ProductSection{ | ||
30 | - // WorkshopId: createProductSectionCommand.WorkshopId, | ||
31 | - // LineId: createProductSectionCommand.LineId, | ||
32 | - // SectionName: createProductSectionCommand.SectionName, | ||
33 | - //} | ||
34 | - //var productSectionRepository productSection.ProductSectionRepository | ||
35 | - //if value, err := factory.CreateProductSectionRepository(map[string]interface{}{ | ||
36 | - // "transactionContext": transactionContext, | ||
37 | - //}); err != nil { | ||
38 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
39 | - //} else { | ||
40 | - // productSectionRepository = value | ||
41 | - //} | ||
42 | - //if productSection, err := productSectionRepository.Save(newProductSection); err != nil { | ||
43 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
44 | - //} else { | ||
45 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
46 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
47 | - // } | ||
48 | - // return productSection, nil | ||
49 | - //} | ||
50 | - return nil, nil | 32 | + |
33 | + uniqueIdDao, _ := dao.NewUniqueIdDao(transactionContext.(*pgTransaction.TransactionContext)) | ||
34 | + uniqueId, err := uniqueIdDao.GenerateUniqueId() | ||
35 | + if err != nil { | ||
36 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
37 | + } | ||
38 | + newProductSection := &domain.ProductSection{ | ||
39 | + SectionId: uniqueId, | ||
40 | + SectionName: createProductSectionCommand.SectionName, | ||
41 | + } | ||
42 | + var workshopRepository domain.WorkshopRepository | ||
43 | + var workshop *domain.Workshop | ||
44 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, createProductSectionCommand.WorkshopId) | ||
45 | + if err != nil { | ||
46 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
47 | + } | ||
48 | + if err = workshop.AddSection(createProductSectionCommand.LineId, newProductSection); err != nil { | ||
49 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
50 | + } | ||
51 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
52 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
53 | + } | ||
54 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
55 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
56 | + } | ||
57 | + return newProductSection, nil | ||
51 | } | 58 | } |
52 | 59 | ||
53 | // 返回工段服务 | 60 | // 返回工段服务 |
@@ -140,30 +147,23 @@ func (productSectionService *ProductSectionService) RemoveProductSection(removeP | @@ -140,30 +147,23 @@ func (productSectionService *ProductSectionService) RemoveProductSection(removeP | ||
140 | defer func() { | 147 | defer func() { |
141 | transactionContext.RollbackTransaction() | 148 | transactionContext.RollbackTransaction() |
142 | }() | 149 | }() |
143 | - //var productSectionRepository productSection.ProductSectionRepository | ||
144 | - //if value, err := factory.CreateProductSectionRepository(map[string]interface{}{ | ||
145 | - // "transactionContext": transactionContext, | ||
146 | - //}); err != nil { | ||
147 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
148 | - //} else { | ||
149 | - // productSectionRepository = value | ||
150 | - //} | ||
151 | - //productSection, err := productSectionRepository.FindOne(map[string]interface{}{"productSectionId": removeProductSectionCommand.ProductSectionId}) | ||
152 | - //if err != nil { | ||
153 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
154 | - //} | ||
155 | - //if productSection == nil { | ||
156 | - // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeProductSectionCommand.ProductSectionId))) | ||
157 | - //} | ||
158 | - //if productSection, err := productSectionRepository.Remove(productSection); err != nil { | ||
159 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
160 | - //} else { | ||
161 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
162 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
163 | - // } | ||
164 | - // return productSection, nil | ||
165 | - //} | ||
166 | - return nil, nil | 150 | + var workshopRepository domain.WorkshopRepository |
151 | + var workshop *domain.Workshop | ||
152 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, removeProductSectionCommand.WorkshopId) | ||
153 | + if err != nil { | ||
154 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
155 | + } | ||
156 | + if err = workshop.RemoveSection(removeProductSectionCommand.LineId, removeProductSectionCommand.SectionId); err != nil { | ||
157 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
158 | + } | ||
159 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
160 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
161 | + } | ||
162 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
163 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
164 | + } | ||
165 | + return struct { | ||
166 | + }{}, nil | ||
167 | } | 167 | } |
168 | 168 | ||
169 | // 更新工段服务 | 169 | // 更新工段服务 |
@@ -181,33 +181,22 @@ func (productSectionService *ProductSectionService) UpdateProductSection(updateP | @@ -181,33 +181,22 @@ func (productSectionService *ProductSectionService) UpdateProductSection(updateP | ||
181 | defer func() { | 181 | defer func() { |
182 | transactionContext.RollbackTransaction() | 182 | transactionContext.RollbackTransaction() |
183 | }() | 183 | }() |
184 | - //var productSectionRepository productSection.ProductSectionRepository | ||
185 | - //if value, err := factory.CreateProductSectionRepository(map[string]interface{}{ | ||
186 | - // "transactionContext": transactionContext, | ||
187 | - //}); err != nil { | ||
188 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
189 | - //} else { | ||
190 | - // productSectionRepository = value | ||
191 | - //} | ||
192 | - //productSection, err := productSectionRepository.FindOne(map[string]interface{}{"productSectionId": updateProductSectionCommand.ProductSectionId}) | ||
193 | - //if err != nil { | ||
194 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
195 | - //} | ||
196 | - //if productSection == nil { | ||
197 | - // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateProductSectionCommand.ProductSectionId))) | ||
198 | - //} | ||
199 | - //if err := productSection.Update(tool_funs.SimpleStructToMap(updateProductSectionCommand)); err != nil { | ||
200 | - // return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
201 | - //} | ||
202 | - //if productSection, err := productSectionRepository.Save(productSection); err != nil { | ||
203 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
204 | - //} else { | ||
205 | - // if err := transactionContext.CommitTransaction(); err != nil { | ||
206 | - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
207 | - // } | ||
208 | - // return productSection, nil | ||
209 | - //} | ||
210 | - return nil, nil | 184 | + var workshopRepository domain.WorkshopRepository |
185 | + var workshop *domain.Workshop | ||
186 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, updateProductSectionCommand.WorkshopId) | ||
187 | + if err != nil { | ||
188 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
189 | + } | ||
190 | + if err = workshop.UpdateSection(updateProductSectionCommand.LineId, updateProductSectionCommand.SectionId, updateProductSectionCommand.SectionName); err != nil { | ||
191 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
192 | + } | ||
193 | + if workshop, err = workshopRepository.Save(workshop); err != nil { | ||
194 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
195 | + } | ||
196 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
197 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
198 | + } | ||
199 | + return updateProductSectionCommand, nil | ||
211 | } | 200 | } |
212 | 201 | ||
213 | func NewProductSectionService(options map[string]interface{}) *ProductSectionService { | 202 | func NewProductSectionService(options map[string]interface{}) *ProductSectionService { |
@@ -9,14 +9,15 @@ import ( | @@ -9,14 +9,15 @@ import ( | ||
9 | ) | 9 | ) |
10 | 10 | ||
11 | type CreateWorkshopCommand struct { | 11 | type CreateWorkshopCommand struct { |
12 | + | ||
12 | // 车间名称 | 13 | // 车间名称 |
13 | WorkshopName string `cname:"车间名称" json:"workshopName" valid:"Required"` | 14 | WorkshopName string `cname:"车间名称" json:"workshopName" valid:"Required"` |
14 | // 负责人ID | 15 | // 负责人ID |
15 | - PrincipalId int `cname:"负责人ID" json:"principalId,omitempty"` | 16 | + PrincipalId int `cname:"负责人" json:"principalId,omitempty" valid:"Required"` |
16 | } | 17 | } |
17 | 18 | ||
18 | func (createWorkshopCommand *CreateWorkshopCommand) Valid(validation *validation.Validation) { | 19 | func (createWorkshopCommand *CreateWorkshopCommand) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 20 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 21 | } |
21 | 22 | ||
22 | func (createWorkshopCommand *CreateWorkshopCommand) ValidateCommand() error { | 23 | func (createWorkshopCommand *CreateWorkshopCommand) ValidateCommand() error { |
@@ -14,7 +14,7 @@ type RemoveWorkshopCommand struct { | @@ -14,7 +14,7 @@ type RemoveWorkshopCommand struct { | ||
14 | } | 14 | } |
15 | 15 | ||
16 | func (removeWorkshopCommand *RemoveWorkshopCommand) Valid(validation *validation.Validation) { | 16 | func (removeWorkshopCommand *RemoveWorkshopCommand) Valid(validation *validation.Validation) { |
17 | - validation.SetError("CustomValid", "未实现的自定义认证") | 17 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
18 | } | 18 | } |
19 | 19 | ||
20 | func (removeWorkshopCommand *RemoveWorkshopCommand) ValidateCommand() error { | 20 | func (removeWorkshopCommand *RemoveWorkshopCommand) ValidateCommand() error { |
@@ -14,11 +14,13 @@ type UpdateWorkshopCommand struct { | @@ -14,11 +14,13 @@ type UpdateWorkshopCommand struct { | ||
14 | // 车间名称 | 14 | // 车间名称 |
15 | WorkshopName string `cname:"车间名称" json:"workshopName" valid:"Required"` | 15 | WorkshopName string `cname:"车间名称" json:"workshopName" valid:"Required"` |
16 | // 负责人ID | 16 | // 负责人ID |
17 | - PrincipalId int `cname:"负责人ID" json:"principalId" valid:"Required"` | 17 | + PrincipalId int `cname:"负责人" json:"principalId" valid:"Required"` |
18 | + // 负责人 (用户对象) | ||
19 | + //Principal *domain.User `json:"principal,omitempty"` | ||
18 | } | 20 | } |
19 | 21 | ||
20 | func (updateWorkshopCommand *UpdateWorkshopCommand) Valid(validation *validation.Validation) { | 22 | func (updateWorkshopCommand *UpdateWorkshopCommand) Valid(validation *validation.Validation) { |
21 | - validation.SetError("CustomValid", "未实现的自定义认证") | 23 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
22 | } | 24 | } |
23 | 25 | ||
24 | func (updateWorkshopCommand *UpdateWorkshopCommand) ValidateCommand() error { | 26 | func (updateWorkshopCommand *UpdateWorkshopCommand) ValidateCommand() error { |
@@ -14,7 +14,7 @@ type GetWorkshopQuery struct { | @@ -14,7 +14,7 @@ type GetWorkshopQuery struct { | ||
14 | } | 14 | } |
15 | 15 | ||
16 | func (getWorkshopQuery *GetWorkshopQuery) Valid(validation *validation.Validation) { | 16 | func (getWorkshopQuery *GetWorkshopQuery) Valid(validation *validation.Validation) { |
17 | - validation.SetError("CustomValid", "未实现的自定义认证") | 17 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
18 | } | 18 | } |
19 | 19 | ||
20 | func (getWorkshopQuery *GetWorkshopQuery) ValidateQuery() error { | 20 | func (getWorkshopQuery *GetWorkshopQuery) ValidateQuery() error { |
@@ -10,13 +10,13 @@ import ( | @@ -10,13 +10,13 @@ import ( | ||
10 | 10 | ||
11 | type ListWorkshopQuery struct { | 11 | type ListWorkshopQuery struct { |
12 | // 查询偏离量 | 12 | // 查询偏离量 |
13 | - Offset int `cname:"查询偏离量" json:"offset" valid:"Required"` | 13 | + Offset int `cname:"查询偏离量" json:"offset"` |
14 | // 查询限制 | 14 | // 查询限制 |
15 | - Limit int `cname:"查询限制" json:"limit" valid:"Required"` | 15 | + Limit int `cname:"查询限制" json:"limit"` |
16 | } | 16 | } |
17 | 17 | ||
18 | func (listWorkshopQuery *ListWorkshopQuery) Valid(validation *validation.Validation) { | 18 | func (listWorkshopQuery *ListWorkshopQuery) Valid(validation *validation.Validation) { |
19 | - validation.SetError("CustomValid", "未实现的自定义认证") | 19 | + //validation.SetError("CustomValid", "未实现的自定义认证") |
20 | } | 20 | } |
21 | 21 | ||
22 | func (listWorkshopQuery *ListWorkshopQuery) ValidateQuery() error { | 22 | func (listWorkshopQuery *ListWorkshopQuery) ValidateQuery() error { |
@@ -8,6 +8,9 @@ import ( | @@ -8,6 +8,9 @@ import ( | ||
8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/workshop/command" | 8 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/workshop/command" |
9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/workshop/query" | 9 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/workshop/query" |
10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | 10 | "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" |
11 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/domainService" | ||
12 | + "strings" | ||
13 | + "time" | ||
11 | ) | 14 | ) |
12 | 15 | ||
13 | // 车间服务 | 16 | // 车间服务 |
@@ -15,7 +18,7 @@ type WorkshopService struct { | @@ -15,7 +18,7 @@ type WorkshopService struct { | ||
15 | } | 18 | } |
16 | 19 | ||
17 | // 创建车间服务 | 20 | // 创建车间服务 |
18 | -func (workshopService *WorkshopService) CreateWorkshop(createWorkshopCommand *command.CreateWorkshopCommand) (interface{}, error) { | 21 | +func (workshopService *WorkshopService) CreateWorkshop(operateInfo *domain.OperateInfo, createWorkshopCommand *command.CreateWorkshopCommand) (interface{}, error) { |
19 | if err := createWorkshopCommand.ValidateCommand(); err != nil { | 22 | if err := createWorkshopCommand.ValidateCommand(); err != nil { |
20 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 23 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
21 | } | 24 | } |
@@ -29,17 +32,32 @@ func (workshopService *WorkshopService) CreateWorkshop(createWorkshopCommand *co | @@ -29,17 +32,32 @@ func (workshopService *WorkshopService) CreateWorkshop(createWorkshopCommand *co | ||
29 | defer func() { | 32 | defer func() { |
30 | transactionContext.RollbackTransaction() | 33 | transactionContext.RollbackTransaction() |
31 | }() | 34 | }() |
35 | + | ||
36 | + var user *domain.User | ||
37 | + userService := domainService.NewUserService() | ||
38 | + user, err = userService.User(createWorkshopCommand.PrincipalId) | ||
39 | + if err != nil { | ||
40 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
41 | + } | ||
42 | + | ||
32 | newWorkshop := &domain.Workshop{ | 43 | newWorkshop := &domain.Workshop{ |
44 | + CompanyId: operateInfo.CompanyId, | ||
45 | + OrgId: operateInfo.OrgId, | ||
33 | WorkshopName: createWorkshopCommand.WorkshopName, | 46 | WorkshopName: createWorkshopCommand.WorkshopName, |
34 | - //PrincipalId: createWorkshopCommand.PrincipalId, | 47 | + Principal: user, |
48 | + CreatedAt: time.Now(), | ||
49 | + UpdatedAt: time.Now(), | ||
50 | + ProductLines: []*domain.ProductLine{}, | ||
35 | } | 51 | } |
52 | + | ||
36 | var workshopRepository domain.WorkshopRepository | 53 | var workshopRepository domain.WorkshopRepository |
37 | - if value, err := factory.CreateWorkshopRepository(map[string]interface{}{ | ||
38 | - "transactionContext": transactionContext, | ||
39 | - }); err != nil { | ||
40 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
41 | - } else { | ||
42 | - workshopRepository = value | 54 | + workshopRepository, _, _ = factory.FastPgWorkshop(transactionContext, 0) |
55 | + if item, err := workshopRepository.FindOne(map[string]interface{}{ | ||
56 | + "workshopName": createWorkshopCommand.WorkshopName, | ||
57 | + "companyId": operateInfo.CompanyId, | ||
58 | + "orgId": operateInfo.OrgId, | ||
59 | + }); err == nil && item != nil && strings.EqualFold(item.WorkshopName, createWorkshopCommand.WorkshopName) { | ||
60 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "车间名称已存在") | ||
43 | } | 61 | } |
44 | if workshop, err := workshopRepository.Save(newWorkshop); err != nil { | 62 | if workshop, err := workshopRepository.Save(newWorkshop); err != nil { |
45 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 63 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
@@ -103,17 +121,15 @@ func (workshopService *WorkshopService) ListWorkshop(listWorkshopQuery *query.Li | @@ -103,17 +121,15 @@ func (workshopService *WorkshopService) ListWorkshop(listWorkshopQuery *query.Li | ||
103 | defer func() { | 121 | defer func() { |
104 | transactionContext.RollbackTransaction() | 122 | transactionContext.RollbackTransaction() |
105 | }() | 123 | }() |
106 | - var workshopRepository domain.WorkshopRepository | ||
107 | - if value, err := factory.CreateWorkshopRepository(map[string]interface{}{ | ||
108 | - "transactionContext": transactionContext, | ||
109 | - }); err != nil { | 124 | + workshopRepository, _, err := factory.FastPgWorkshop(transactionContext, 0) |
125 | + if err != nil { | ||
110 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 126 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
111 | - } else { | ||
112 | - workshopRepository = value | ||
113 | } | 127 | } |
114 | - if count, workshops, err := workshopRepository.Find(tool_funs.SimpleStructToMap(listWorkshopQuery)); err != nil { | 128 | + var count int64 |
129 | + var workshops []*domain.Workshop | ||
130 | + if count, workshops, err = workshopRepository.Find(tool_funs.SimpleStructToMap(listWorkshopQuery)); err != nil { | ||
115 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 131 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
116 | - } else { | 132 | + } |
117 | if err := transactionContext.CommitTransaction(); err != nil { | 133 | if err := transactionContext.CommitTransaction(); err != nil { |
118 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 134 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
119 | } | 135 | } |
@@ -121,7 +137,7 @@ func (workshopService *WorkshopService) ListWorkshop(listWorkshopQuery *query.Li | @@ -121,7 +137,7 @@ func (workshopService *WorkshopService) ListWorkshop(listWorkshopQuery *query.Li | ||
121 | "count": count, | 137 | "count": count, |
122 | "workshops": workshops, | 138 | "workshops": workshops, |
123 | }, nil | 139 | }, nil |
124 | - } | 140 | + |
125 | } | 141 | } |
126 | 142 | ||
127 | // 移除车间服务 | 143 | // 移除车间服务 |
@@ -154,6 +170,9 @@ func (workshopService *WorkshopService) RemoveWorkshop(removeWorkshopCommand *co | @@ -154,6 +170,9 @@ func (workshopService *WorkshopService) RemoveWorkshop(removeWorkshopCommand *co | ||
154 | if workshop == nil { | 170 | if workshop == nil { |
155 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeWorkshopCommand.WorkshopId))) | 171 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeWorkshopCommand.WorkshopId))) |
156 | } | 172 | } |
173 | + if !workshop.CanRemove() { | ||
174 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "当车间下存在线别") | ||
175 | + } | ||
157 | if workshop, err := workshopRepository.Remove(workshop); err != nil { | 176 | if workshop, err := workshopRepository.Remove(workshop); err != nil { |
158 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 177 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
159 | } else { | 178 | } else { |
@@ -179,24 +198,32 @@ func (workshopService *WorkshopService) UpdateWorkshop(updateWorkshopCommand *co | @@ -179,24 +198,32 @@ func (workshopService *WorkshopService) UpdateWorkshop(updateWorkshopCommand *co | ||
179 | defer func() { | 198 | defer func() { |
180 | transactionContext.RollbackTransaction() | 199 | transactionContext.RollbackTransaction() |
181 | }() | 200 | }() |
201 | + | ||
182 | var workshopRepository domain.WorkshopRepository | 202 | var workshopRepository domain.WorkshopRepository |
183 | - if value, err := factory.CreateWorkshopRepository(map[string]interface{}{ | ||
184 | - "transactionContext": transactionContext, | ||
185 | - }); err != nil { | 203 | + var workshop *domain.Workshop |
204 | + workshopRepository, workshop, err = factory.FastPgWorkshop(transactionContext, updateWorkshopCommand.WorkshopId) | ||
205 | + if err != nil { | ||
186 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 206 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
187 | - } else { | ||
188 | - workshopRepository = value | ||
189 | } | 207 | } |
190 | - workshop, err := workshopRepository.FindOne(map[string]interface{}{"workshopId": updateWorkshopCommand.WorkshopId}) | 208 | + if workshop.WorkshopName != updateWorkshopCommand.WorkshopName { |
209 | + if item, err := workshopRepository.FindOne(map[string]interface{}{ | ||
210 | + "workshopName": updateWorkshopCommand.WorkshopName, | ||
211 | + }); err == nil && item != nil && strings.EqualFold(item.WorkshopName, updateWorkshopCommand.WorkshopName) { | ||
212 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "车间名称已存在") | ||
213 | + } | ||
214 | + workshop.WorkshopName = updateWorkshopCommand.WorkshopName | ||
215 | + } | ||
216 | + | ||
217 | + if workshop.Principal.UserId != updateWorkshopCommand.PrincipalId && updateWorkshopCommand.PrincipalId > 0 { | ||
218 | + var user *domain.User | ||
219 | + userService := domainService.NewUserService() | ||
220 | + user, err = userService.User(updateWorkshopCommand.PrincipalId) | ||
191 | if err != nil { | 221 | if err != nil { |
192 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 222 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
193 | } | 223 | } |
194 | - if workshop == nil { | ||
195 | - return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateWorkshopCommand.WorkshopId))) | ||
196 | - } | ||
197 | - if err := workshop.Update(tool_funs.SimpleStructToMap(updateWorkshopCommand)); err != nil { | ||
198 | - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | 224 | + workshop.Principal = user |
199 | } | 225 | } |
226 | + | ||
200 | if workshop, err := workshopRepository.Save(workshop); err != nil { | 227 | if workshop, err := workshopRepository.Save(workshop); err != nil { |
201 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 228 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
202 | } else { | 229 | } else { |
@@ -14,6 +14,15 @@ var CACHE_PREFIX = "allied-creation-manufacture-dev" | @@ -14,6 +14,15 @@ var CACHE_PREFIX = "allied-creation-manufacture-dev" | ||
14 | var LOG_LEVEL = "debug" | 14 | var LOG_LEVEL = "debug" |
15 | var LOG_FILE = "app.log" | 15 | var LOG_FILE = "app.log" |
16 | 16 | ||
17 | +//天联共创基础模块 | ||
18 | +var ALLIED_CREATION_BASIC_HOST = "http://localhost:8080" //"http://allied-creation-basic-dev.fjmaimaimai.com" | ||
19 | + | ||
20 | +//天联共创用户模块 | ||
21 | +var ALLIED_CREATION_USER_HOST = "http://localhost:8081" //"http://allied-creation-user-dev.fjmaimaimai.com" | ||
22 | + | ||
23 | +//天联共创业务模块 | ||
24 | +var ALLIED_CREATION_COOPERATION_HOST = "http://localhost:8082" // "http://allied-creation-cooperation-dev.fjmaimaimai.com" | ||
25 | + | ||
17 | var CUSTOMER_ACCOUNT = []int64{3129687560814592, 3129687690100739, 3492238958608384} | 26 | var CUSTOMER_ACCOUNT = []int64{3129687560814592, 3129687690100739, 3492238958608384} |
18 | 27 | ||
19 | const CUSTOMER_ACCOUNT_DELIMITER = "," | 28 | const CUSTOMER_ACCOUNT_DELIMITER = "," |
@@ -42,6 +51,20 @@ func init() { | @@ -42,6 +51,20 @@ func init() { | ||
42 | CUSTOMER_ACCOUNT = tmpAccounts | 51 | CUSTOMER_ACCOUNT = tmpAccounts |
43 | } | 52 | } |
44 | } | 53 | } |
54 | + | ||
55 | + if os.Getenv("ALLIED_CREATION_BASIC_HOST") != "" { | ||
56 | + ALLIED_CREATION_BASIC_HOST = os.Getenv("ALLIED_CREATION_BASIC_HOST") | ||
57 | + } | ||
58 | + if os.Getenv("ALLIED_CREATION_USER_HOST") != "" { | ||
59 | + ALLIED_CREATION_USER_HOST = os.Getenv("ALLIED_CREATION_USER_HOST") | ||
60 | + } | ||
61 | + if os.Getenv("ALLIED_CREATION_COOPERATION_HOST") != "" { | ||
62 | + ALLIED_CREATION_COOPERATION_HOST = os.Getenv("ALLIED_CREATION_COOPERATION_HOST") | ||
63 | + } | ||
64 | + //if os.Getenv("SMS_SERVE_HOST") != "" { | ||
65 | + // SMS_SERVE_HOST = os.Getenv("SMS_SERVE_HOST") | ||
66 | + //} | ||
67 | + | ||
45 | if os.Getenv("SERVICE_ENV") != "" { | 68 | if os.Getenv("SERVICE_ENV") != "" { |
46 | SERVICE_ENV = os.Getenv("SERVICE_ENV") | 69 | SERVICE_ENV = os.Getenv("SERVICE_ENV") |
47 | } | 70 | } |
pkg/domain/domain.go
0 → 100644
1 | +package domain | ||
2 | + | ||
3 | +import "fmt" | ||
4 | + | ||
5 | +const MaxQueryRow = 10000 | ||
6 | + | ||
7 | +var ( | ||
8 | + ErrorNotFound = fmt.Errorf("没有此资源") | ||
9 | +) | ||
10 | + | ||
11 | +/***** 1.数据权限 *****/ | ||
12 | +// DataAuthor 数据验证器 | ||
13 | +type DataAuthor interface { | ||
14 | + DataAuth(options OperateInfo, data AuthedData) error | ||
15 | +} | ||
16 | + | ||
17 | +// AuthedData 需要认证的数据 | ||
18 | +type AuthedData interface { | ||
19 | + // 数据所属组织 | ||
20 | + BelongOrg() int64 | ||
21 | +} | ||
22 | + | ||
23 | +// 验证参数 | ||
24 | +type OperateInfo struct { | ||
25 | + // 当前操作人 | ||
26 | + UserId int | ||
27 | + // 当前公司 | ||
28 | + CompanyId int | ||
29 | + // 当前登录的组织 | ||
30 | + OrgId int | ||
31 | + // 菜单模块 | ||
32 | + MenuCode string | ||
33 | +} | ||
34 | + | ||
35 | +func NewCheckOptions(optUser, org int) OperateInfo { | ||
36 | + return OperateInfo{ | ||
37 | + UserId: optUser, | ||
38 | + OrgId: org, | ||
39 | + } | ||
40 | +} | ||
41 | + | ||
42 | +func (info OperateInfo) Valid() bool { | ||
43 | + if info.UserId == 0 || info.CompanyId == 0 || info.OrgId == 0 { | ||
44 | + return false | ||
45 | + } | ||
46 | + return true | ||
47 | +} | ||
48 | + | ||
49 | +func (info OperateInfo) GetCompanyId(companyId int) int { | ||
50 | + if companyId != 0 { | ||
51 | + return companyId | ||
52 | + } | ||
53 | + return info.CompanyId | ||
54 | +} | ||
55 | + | ||
56 | +func (info OperateInfo) GetOrgId(orgId int) int { | ||
57 | + if orgId != 0 { | ||
58 | + return orgId | ||
59 | + } | ||
60 | + return info.OrgId | ||
61 | +} | ||
62 | + | ||
63 | +func (info OperateInfo) GetUserId(userId int) int { | ||
64 | + if userId != 0 { | ||
65 | + return userId | ||
66 | + } | ||
67 | + return info.UserId | ||
68 | +} | ||
69 | + | ||
70 | +func (info OperateInfo) String() string { | ||
71 | + return fmt.Sprintf("UserId: %v OrgId:%v CompanyId:%v", info.UserId, info.OrgId, info.CompanyId) | ||
72 | +} |
@@ -8,4 +8,6 @@ type ProductLine struct { | @@ -8,4 +8,6 @@ type ProductLine struct { | ||
8 | LineName string `json:"lineName,omitempty"` | 8 | LineName string `json:"lineName,omitempty"` |
9 | // 工段列表 | 9 | // 工段列表 |
10 | ProductSections []*ProductSection `json:"productSections,omitempty"` | 10 | ProductSections []*ProductSection `json:"productSections,omitempty"` |
11 | + // 已删除标识 0:正常 1:已删除 | ||
12 | + Removed int `json:"removed,omitempty"` | ||
11 | } | 13 | } |
@@ -6,4 +6,6 @@ type ProductSection struct { | @@ -6,4 +6,6 @@ type ProductSection struct { | ||
6 | SectionId int `json:"sectionId,omitempty"` | 6 | SectionId int `json:"sectionId,omitempty"` |
7 | // 工段名称 | 7 | // 工段名称 |
8 | SectionName string `json:"sectionName,omitempty"` | 8 | SectionName string `json:"sectionName,omitempty"` |
9 | + // 已删除标识 0:正常 1:已删除 | ||
10 | + Removed int `json:"removed,omitempty"` | ||
9 | } | 11 | } |
1 | package domain | 1 | package domain |
2 | 2 | ||
3 | -import "time" | 3 | +import ( |
4 | + "fmt" | ||
5 | + "time" | ||
6 | +) | ||
7 | + | ||
8 | +const ( | ||
9 | + // 未删除 | ||
10 | + NotDeleted = 0 | ||
11 | + // 已删除 | ||
12 | + Deleted = 1 | ||
13 | +) | ||
4 | 14 | ||
5 | // 车间 | 15 | // 车间 |
6 | type Workshop struct { | 16 | type Workshop struct { |
@@ -39,47 +49,141 @@ func (workshop *Workshop) Identify() interface{} { | @@ -39,47 +49,141 @@ func (workshop *Workshop) Identify() interface{} { | ||
39 | } | 49 | } |
40 | 50 | ||
41 | func (workshop *Workshop) Update(data map[string]interface{}) error { | 51 | func (workshop *Workshop) Update(data map[string]interface{}) error { |
42 | - //if companyId, ok := data["companyId"]; ok { | ||
43 | - // workshop.CompanyId = companyId.(int) | ||
44 | - //} | ||
45 | - //if orgId, ok := data["orgId"]; ok { | ||
46 | - // workshop.OrgId = orgId.(int) | ||
47 | - //} | ||
48 | - //if workshopId, ok := data["workshopId"]; ok { | ||
49 | - // workshop.WorkshopId = workshopId.(int) | ||
50 | - //} | ||
51 | if workshopName, ok := data["workshopName"]; ok { | 52 | if workshopName, ok := data["workshopName"]; ok { |
52 | workshop.WorkshopName = workshopName.(string) | 53 | workshop.WorkshopName = workshopName.(string) |
53 | } | 54 | } |
54 | if userId, ok := data["userId"]; ok { | 55 | if userId, ok := data["userId"]; ok { |
55 | workshop.Principal.UserId = userId.(int) | 56 | workshop.Principal.UserId = userId.(int) |
56 | } | 57 | } |
57 | - if userName, ok := data["userName"]; ok { | ||
58 | - workshop.Principal.UserName = userName.(string) | 58 | + if principal, ok := data["principal"]; ok { |
59 | + workshop.Principal = principal.(*User) | ||
60 | + } | ||
61 | + workshop.UpdatedAt = time.Now() | ||
62 | + return nil | ||
63 | +} | ||
64 | + | ||
65 | +// AddLine 添加生产线 | ||
66 | +func (workshop *Workshop) AddLine(line *ProductLine) error { | ||
67 | + for i := range workshop.ProductLines { | ||
68 | + item := workshop.ProductLines[i] | ||
69 | + if item.Removed == Deleted { | ||
70 | + continue | ||
71 | + } | ||
72 | + if item.LineName == line.LineName { | ||
73 | + return fmt.Errorf("生产线:%v已存在", line.LineName) | ||
74 | + } | ||
75 | + } | ||
76 | + workshop.ProductLines = append(workshop.ProductLines, line) | ||
77 | + return nil | ||
78 | +} | ||
79 | + | ||
80 | +// RemoveLine 移除生产线 | ||
81 | +func (workshop *Workshop) RemoveLine(lineId int) (*ProductLine, error) { | ||
82 | + line, err := workshop.FindLine(lineId) | ||
83 | + if err != nil { | ||
84 | + return nil, err | ||
85 | + } | ||
86 | + if line.Removed == 1 { | ||
87 | + return nil, fmt.Errorf("生产线:%v已删除", line.LineName) | ||
88 | + } | ||
89 | + line.Removed = 1 | ||
90 | + return line, nil | ||
91 | +} | ||
92 | + | ||
93 | +// RemoveLine 更新生产线 | ||
94 | +func (workshop *Workshop) UpdateLine(lineId int, lineName string) error { | ||
95 | + line, err := workshop.FindLine(lineId) | ||
96 | + if err != nil { | ||
97 | + return err | ||
98 | + } | ||
99 | + if line.Removed == 1 { | ||
100 | + return fmt.Errorf("生产线:%v已删除", line.LineName) | ||
101 | + } | ||
102 | + line.LineName = lineName | ||
103 | + return nil | ||
104 | +} | ||
105 | + | ||
106 | +// FindLine 查询生产线 | ||
107 | +func (workshop *Workshop) FindLine(lineId int) (*ProductLine, error) { | ||
108 | + for i := range workshop.ProductLines { | ||
109 | + item := workshop.ProductLines[i] | ||
110 | + if item.LineId == lineId { | ||
111 | + return workshop.ProductLines[i], nil | ||
112 | + } | ||
113 | + } | ||
114 | + return nil, fmt.Errorf("生产线不存在") | ||
115 | +} | ||
116 | + | ||
117 | +// RemoveLine 车间是否可删除 (存在任意一个生产线时,可删除) | ||
118 | +func (workshop *Workshop) CanRemove() bool { | ||
119 | + for i := range workshop.ProductLines { | ||
120 | + item := workshop.ProductLines[i] | ||
121 | + if item.Removed == NotDeleted { | ||
122 | + return false | ||
123 | + } | ||
59 | } | 124 | } |
60 | - if employeeType, ok := data["employeeType"]; ok { | ||
61 | - workshop.Principal.EmployeeType = employeeType.(int) | 125 | + return true |
126 | +} | ||
127 | + | ||
128 | +// AddLine 添加生产线 | ||
129 | +func (workshop *Workshop) AddSection(lineId int, section *ProductSection) error { | ||
130 | + line, err := workshop.FindLine(lineId) | ||
131 | + if err != nil { | ||
132 | + return err | ||
133 | + } | ||
134 | + if line.Removed == 1 { | ||
135 | + return fmt.Errorf("生产线:%v已删除", line.LineName) | ||
62 | } | 136 | } |
63 | - if icCardNumber, ok := data["icCardNumber"]; ok { | ||
64 | - workshop.Principal.IcCardNumber = icCardNumber.(string) | 137 | + for i := range line.ProductSections { |
138 | + item := line.ProductSections[i] | ||
139 | + if item.Removed == Deleted { | ||
140 | + continue | ||
65 | } | 141 | } |
66 | - if avatar, ok := data["avatar"]; ok { | ||
67 | - workshop.Principal.Avatar = avatar.(string) | 142 | + if item.SectionName == section.SectionName { |
143 | + return fmt.Errorf("工段:%v已存在", section.SectionName) | ||
68 | } | 144 | } |
69 | - if phone, ok := data["phone"]; ok { | ||
70 | - workshop.Principal.Phone = phone.(string) | ||
71 | } | 145 | } |
72 | - //if productLines, ok := data["productLines"]; ok { | ||
73 | - // workshop.ProductLines = productLines.(array) | ||
74 | - //} | ||
75 | - if createdAt, ok := data["createdAt"]; ok { | ||
76 | - workshop.CreatedAt = createdAt.(time.Time) | 146 | + line.ProductSections = append(line.ProductSections, section) |
147 | + return nil | ||
148 | +} | ||
149 | + | ||
150 | +// RemoveLine 移除生产线 | ||
151 | +func (workshop *Workshop) RemoveSection(lineId, sectionId int) error { | ||
152 | + section, err := workshop.FindSection(lineId, sectionId) | ||
153 | + if err != nil { | ||
154 | + return err | ||
155 | + } | ||
156 | + if section.Removed == 1 { | ||
157 | + return fmt.Errorf("工段:%v已删除", section.SectionName) | ||
77 | } | 158 | } |
78 | - if updatedAt, ok := data["updatedAt"]; ok { | ||
79 | - workshop.UpdatedAt = updatedAt.(time.Time) | 159 | + section.Removed = 1 |
160 | + return nil | ||
161 | +} | ||
162 | + | ||
163 | +// RemoveLine 更新生产线 | ||
164 | +func (workshop *Workshop) UpdateSection(lineId, sectionId int, sectionName string) error { | ||
165 | + section, err := workshop.FindSection(lineId, sectionId) | ||
166 | + if err != nil { | ||
167 | + return err | ||
80 | } | 168 | } |
81 | - if deletedAt, ok := data["deletedAt"]; ok { | ||
82 | - workshop.DeletedAt = deletedAt.(time.Time) | 169 | + if section.Removed == 1 { |
170 | + return fmt.Errorf("工段:%v已删除", section.SectionName) | ||
83 | } | 171 | } |
172 | + section.SectionName = sectionName | ||
84 | return nil | 173 | return nil |
85 | } | 174 | } |
175 | + | ||
176 | +// 查询生产线 | ||
177 | +func (workshop *Workshop) FindSection(lineId, sectionId int) (*ProductSection, error) { | ||
178 | + line, err := workshop.FindLine(lineId) | ||
179 | + if err != nil { | ||
180 | + return nil, err | ||
181 | + } | ||
182 | + for i := range line.ProductSections { | ||
183 | + item := line.ProductSections[i] | ||
184 | + if item.SectionId == sectionId { | ||
185 | + return item, nil | ||
186 | + } | ||
187 | + } | ||
188 | + return nil, fmt.Errorf("工段不存在") | ||
189 | +} |
1 | +package example | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/utils/json" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-lib/gateway/allied_creation_user" | ||
6 | + "testing" | ||
7 | +) | ||
8 | + | ||
9 | +var host = "http://127.0.0.1:8081" | ||
10 | + | ||
11 | +func TestAlliedUserGatewayLib(t *testing.T) { | ||
12 | + creation := allied_creation_user.NewHttpLibAlliedCreationUser(host) | ||
13 | + user, _ := creation.UserGet(allied_creation_user.ReqGetUser{ | ||
14 | + UserId: 2, | ||
15 | + }) | ||
16 | + t.Log(json.MarshalToString(user)) | ||
17 | + _, users, _ := creation.UserSearch(allied_creation_user.ReqUserSearch{ | ||
18 | + Offset: 60, | ||
19 | + }) | ||
20 | + t.Log(json.MarshalToString(users)) | ||
21 | + | ||
22 | + company, _ := creation.CompanyGet(allied_creation_user.ReqCompanyGet{ | ||
23 | + CompanyId: 2, | ||
24 | + }) | ||
25 | + t.Log(json.MarshalToString(company)) | ||
26 | + | ||
27 | + _, companies, _ := creation.CompanySearch(allied_creation_user.ReqCompanySearch{}) | ||
28 | + t.Log(json.MarshalToString(companies)) | ||
29 | + | ||
30 | + org, _ := creation.OrgGet(allied_creation_user.ReqOrgGet{ | ||
31 | + OrgId: 2, | ||
32 | + }) | ||
33 | + t.Log(json.MarshalToString(org)) | ||
34 | + _, orgs, _ := creation.OrgSearch(allied_creation_user.ReqOrgSearch{}) | ||
35 | + t.Log(json.MarshalToString(orgs)) | ||
36 | +} | ||
37 | + | ||
38 | +func TestAlliedUserGatewayLibQuick(t *testing.T) { | ||
39 | + creation := allied_creation_user.NewHttpLibAlliedCreationUser(host) | ||
40 | + user, _ := creation.User(2) | ||
41 | + t.Log(json.MarshalToString(user)) | ||
42 | + users, _ := creation.Users([]int{2}) | ||
43 | + t.Log(json.MarshalToString(users)) | ||
44 | + | ||
45 | + company, _ := creation.Company(2) | ||
46 | + t.Log(json.MarshalToString(company)) | ||
47 | + | ||
48 | + companies, _ := creation.Companies([]int{2}) | ||
49 | + t.Log(json.MarshalToString(companies)) | ||
50 | + | ||
51 | + org, _ := creation.Organization(2) | ||
52 | + t.Log(json.MarshalToString(org)) | ||
53 | + orgs, _ := creation.Organizations([]int{2}) | ||
54 | + t.Log(json.MarshalToString(orgs)) | ||
55 | +} |
pkg/infrastructure/allied-lib/gateway/allied_creation_user/httplib_allied_creation_user.go
0 → 100644
1 | +package allied_creation_user | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + gatewayLib "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/gateway" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/models" | ||
7 | + "strconv" | ||
8 | + "time" | ||
9 | +) | ||
10 | + | ||
11 | +// HttpLibAlliedCreationUser 用户模块 | ||
12 | +type HttpLibAlliedCreationUser struct { | ||
13 | + gatewayLib.BaseServiceGateway | ||
14 | + baseUrL string | ||
15 | +} | ||
16 | + | ||
17 | +func NewHttpLibAlliedCreationUser(host string) *HttpLibAlliedCreationUser { | ||
18 | + gt := gatewayLib.NewBaseServiceGateway(host) | ||
19 | + gt.ConnectTimeout = 10 * time.Second | ||
20 | + gt.ReadWriteTimeout = 10 * time.Second | ||
21 | + return &HttpLibAlliedCreationUser{ | ||
22 | + BaseServiceGateway: gt, | ||
23 | + } | ||
24 | +} | ||
25 | + | ||
26 | +// 快速查询 | ||
27 | + | ||
28 | +// 用户 | ||
29 | +func (gateway HttpLibAlliedCreationUser) User(userId int) (*models.User, error) { | ||
30 | + return gateway.UserGet(ReqGetUser{UserId: userId}) | ||
31 | +} | ||
32 | +func (gateway HttpLibAlliedCreationUser) Users(userIds []int) ([]*models.User, error) { | ||
33 | + var list = make([]*models.User, 0) | ||
34 | + for i := range userIds { | ||
35 | + item, err := gateway.User(userIds[i]) | ||
36 | + if err != nil { | ||
37 | + return list, err | ||
38 | + } | ||
39 | + list = append(list, item) | ||
40 | + } | ||
41 | + return list, nil | ||
42 | +} | ||
43 | + | ||
44 | +// 公司 | ||
45 | +func (gateway HttpLibAlliedCreationUser) Company(companyId int) (*models.Company, error) { | ||
46 | + return gateway.CompanyGet(ReqCompanyGet{CompanyId: companyId}) | ||
47 | +} | ||
48 | +func (gateway HttpLibAlliedCreationUser) Companies(companyIds []int) ([]*models.Company, error) { | ||
49 | + var list = make([]*models.Company, 0) | ||
50 | + for i := range companyIds { | ||
51 | + item, err := gateway.Company(companyIds[i]) | ||
52 | + if err != nil { | ||
53 | + return list, err | ||
54 | + } | ||
55 | + list = append(list, item) | ||
56 | + } | ||
57 | + return list, nil | ||
58 | +} | ||
59 | + | ||
60 | +// 组织 | ||
61 | +func (gateway HttpLibAlliedCreationUser) Organization(orgId int) (*models.Organization, error) { | ||
62 | + return gateway.OrgGet(ReqOrgGet{OrgId: orgId}) | ||
63 | +} | ||
64 | +func (gateway HttpLibAlliedCreationUser) Organizations(orgIds []int) ([]*models.Organization, error) { | ||
65 | + var list = make([]*models.Organization, 0) | ||
66 | + for i := range orgIds { | ||
67 | + item, err := gateway.Organization(orgIds[i]) | ||
68 | + if err != nil { | ||
69 | + return list, err | ||
70 | + } | ||
71 | + list = append(list, item) | ||
72 | + } | ||
73 | + return list, nil | ||
74 | +} | ||
75 | + | ||
76 | +// 部门 | ||
77 | +func (gateway HttpLibAlliedCreationUser) Department(departmentId int) (*models.Department, error) { | ||
78 | + o, err := gateway.OrgGet(ReqOrgGet{OrgId: departmentId}) | ||
79 | + if err != nil { | ||
80 | + return nil, err | ||
81 | + } | ||
82 | + return o.ToDepartment(), err | ||
83 | +} | ||
84 | +func (gateway HttpLibAlliedCreationUser) Departments(departmentIds []int) ([]*models.Department, error) { | ||
85 | + organizations, err := gateway.Organizations(departmentIds) | ||
86 | + if err != nil { | ||
87 | + return nil, err | ||
88 | + } | ||
89 | + var list = make([]*models.Department, 0) | ||
90 | + for i := range organizations { | ||
91 | + list = append(list, organizations[i].ToDepartment()) | ||
92 | + } | ||
93 | + return list, nil | ||
94 | +} | ||
95 | + | ||
96 | +//UserGet 获取用户 | ||
97 | +func (gateway HttpLibAlliedCreationUser) UserGet(param ReqGetUser) (*models.User, error) { | ||
98 | + url := fmt.Sprintf("%s%s%d", gateway.Host(), "/user/", param.UserId) | ||
99 | + method := "get" | ||
100 | + var data models.User | ||
101 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
102 | + return &data, err | ||
103 | +} | ||
104 | + | ||
105 | +//UserSearch 搜索用户列表 | ||
106 | +func (gateway HttpLibAlliedCreationUser) UserSearch(param ReqUserSearch) (int, []*models.User, error) { | ||
107 | + url := gateway.Host() + "/user/search" | ||
108 | + method := "post" | ||
109 | + var data DataUserSearch | ||
110 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
111 | + return data.Count, data.Users, err | ||
112 | +} | ||
113 | + | ||
114 | +// CompanyGet 返回企业 | ||
115 | +func (gateway HttpLibAlliedCreationUser) CompanyGet(param ReqCompanyGet) (*models.Company, error) { | ||
116 | + url := gateway.Host() + "/company/" + strconv.Itoa(param.CompanyId) | ||
117 | + method := "GET" | ||
118 | + var data CompanyItem | ||
119 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
120 | + return data.ToCompany(), err | ||
121 | +} | ||
122 | + | ||
123 | +// CompanySearch 返回企业列表 | ||
124 | +func (gateway HttpLibAlliedCreationUser) CompanySearch(param ReqCompanySearch) (int, []*models.Company, error) { | ||
125 | + url := gateway.Host() + "/company/search" | ||
126 | + method := "post" | ||
127 | + var data DataCompanySearch | ||
128 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
129 | + if err != nil { | ||
130 | + return data.Count, nil, err | ||
131 | + } | ||
132 | + cs := make([]*models.Company, 0) | ||
133 | + for i := range data.Companys { | ||
134 | + cs = append(cs, data.Companys[i].ToCompany()) | ||
135 | + } | ||
136 | + return data.Count, cs, err | ||
137 | +} | ||
138 | + | ||
139 | +// Org[orgId} 返回组织 | ||
140 | +func (gateway HttpLibAlliedCreationUser) OrgGet(param ReqOrgGet) (*models.Organization, error) { | ||
141 | + url := gateway.Host() + "/org/" + strconv.Itoa(param.OrgId) | ||
142 | + if param.FetchFlag > 0 { | ||
143 | + url += fmt.Sprintf("?fetchFlag=%v", param.FetchFlag) | ||
144 | + } | ||
145 | + method := "get" | ||
146 | + var data models.Organization | ||
147 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
148 | + return &data, err | ||
149 | +} | ||
150 | + | ||
151 | +// OrgSearch 返回组织列表 | ||
152 | +func (gateway HttpLibAlliedCreationUser) OrgSearch(param ReqOrgSearch) (int, []*models.Organization, error) { | ||
153 | + url := gateway.Host() + "/org/search" | ||
154 | + method := "post" | ||
155 | + var data DataOrgSearch | ||
156 | + err := gateway.FastDoRequest(url, method, param, &data) | ||
157 | + return data.Count, data.Orgs, err | ||
158 | +} |
1 | +package allied_creation_user | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/models" | ||
5 | + "time" | ||
6 | +) | ||
7 | + | ||
8 | +//搜索用户列表 | ||
9 | +type ( | ||
10 | + ReqUserSearch struct { | ||
11 | + // 查询偏离量 | ||
12 | + Offset int `json:"offset"` | ||
13 | + // 查询限制 | ||
14 | + Limit int `json:"limit"` | ||
15 | + // 用户基础id | ||
16 | + UserBaseId int64 ` json:"userBaseId"` | ||
17 | + // 企业id | ||
18 | + CompanyId int64 ` json:"companyId"` | ||
19 | + // 组织ID | ||
20 | + OrganizationId int64 `json:"organizationId"` | ||
21 | + // 部门编号 | ||
22 | + DepartmentId int64 `json:"departmentId"` | ||
23 | + // 用户姓名 | ||
24 | + UserName string `json:"userName"` | ||
25 | + // 共创公司 | ||
26 | + CooperationCompany string `cname:"共创公司" json:"cooperationCompany,omitempty"` | ||
27 | + // 部门名称 | ||
28 | + DepName string `json:"depName"` | ||
29 | + // 手机号码 | ||
30 | + Phone string `json:"phone"` | ||
31 | + // 用户类型 | ||
32 | + UserType int `cname:"用户类型 1:普通用户 2:共创用户 1024:企业注册用户" json:"userType,omitempty"` | ||
33 | + // 匹配多个组织 | ||
34 | + InOrgIds []int64 `cname:"匹配多个组织" json:"inOrgIds,omitempty"` | ||
35 | + // 实时拉取数据 (获取最新的) | ||
36 | + PullRealTime bool `cname:"拉取最新数据" json:"pullRealTime,omitempty"` | ||
37 | + // 状态(1:启用 2:禁用 3:注销) | ||
38 | + EnableStatus int `cname:"状态(1:启用 2:禁用 3:注销)" json:"enableStatus,omitempty"` | ||
39 | + // 状态(1:启用 2:禁用 3:注销) | ||
40 | + InEnableStatus []int `cname:"状态(1:启用 2:禁用 3:注销)" json:"inEnableStatus,omitempty"` | ||
41 | + // 匹配多个公司 | ||
42 | + InCompanyIds []interface{} `json:"inCompanyIds,omitempty"` | ||
43 | + | ||
44 | + // 自定义高级查询 | ||
45 | + AdvancedQuery string `json:"advancedQuery"` | ||
46 | + } | ||
47 | + | ||
48 | + //DataUserSearch 搜索用户列表 | ||
49 | + DataUserSearch struct { | ||
50 | + Count int `json:"count"` | ||
51 | + Users []*models.User `json:"users"` | ||
52 | + } | ||
53 | +) | ||
54 | + | ||
55 | +//获取用户 | ||
56 | +type ( | ||
57 | + ReqGetUser struct { | ||
58 | + UserId int `json:"userId"` | ||
59 | + } | ||
60 | + | ||
61 | + DataGateUser struct { | ||
62 | + models.User | ||
63 | + } | ||
64 | +) | ||
65 | + | ||
66 | +//返回企业 | ||
67 | +type ( | ||
68 | + ReqCompanyGet struct { | ||
69 | + CompanyId int `json:"companyId"` | ||
70 | + } | ||
71 | + | ||
72 | + DataCompanyGet CompanyItem | ||
73 | + | ||
74 | + CompanyItem struct { | ||
75 | + CompanyId int `json:"companyId"` | ||
76 | + CompanyConfig struct { | ||
77 | + SystemName string `json:"systemName"` | ||
78 | + Theme string `json:"theme"` | ||
79 | + } `json:"companyConfig"` | ||
80 | + CompanyInfo struct { | ||
81 | + Logo string `json:"logo"` | ||
82 | + CompanyName string `json:"companyName"` | ||
83 | + Scale string `json:"scale"` | ||
84 | + IndustryCategory string `json:"industryCategory"` | ||
85 | + RegisteredTime time.Time `json:"registeredTime"` | ||
86 | + //Legal struct { | ||
87 | + // LegalPerson string `json:"legalPerson"` | ||
88 | + // SocialCreditCode string `json:"socialCreditCode"` | ||
89 | + // BusinessLicenseAddress struct { | ||
90 | + // Province string `json:"province"` | ||
91 | + // City string `json:"city"` | ||
92 | + // Address string `json:"address"` | ||
93 | + // } `json:"businessLicenseAddress"` | ||
94 | + // BusinessLicenseAttachments []domain.Attachment `json:"businessLicenseAttachments"` | ||
95 | + //} `json:"legal"` | ||
96 | + Remark string `json:"备注"` | ||
97 | + } `json:"companyInfo"` | ||
98 | + Status int `json:"status"` | ||
99 | + CreatedAt time.Time `json:"createdAt"` | ||
100 | + UpdatedAt time.Time `json:"updatedAt"` | ||
101 | + } | ||
102 | +) | ||
103 | + | ||
104 | +func (item CompanyItem) ToCompany() *models.Company { | ||
105 | + return &models.Company{ | ||
106 | + CompanyId: item.CompanyId, | ||
107 | + CompanyName: item.CompanyInfo.CompanyName, | ||
108 | + Status: item.Status, | ||
109 | + Logo: item.CompanyInfo.Logo, | ||
110 | + } | ||
111 | +} | ||
112 | + | ||
113 | +//返回企业列表 | ||
114 | +type ( | ||
115 | + ReqCompanySearch struct { | ||
116 | + // 查询偏离量 | ||
117 | + Offset int `cname:"查询偏离量" json:"offset,omitempty"` | ||
118 | + // 查询限制 | ||
119 | + Limit int `cname:"查询限制" json:"limit,omitempty"` | ||
120 | + // 状态 | ||
121 | + Status int `cname:"状态" json:"status,omitempty"` | ||
122 | + // 企业名称 | ||
123 | + CompanyName string `cname:"企业名称" json:"companyName,omitempty"` | ||
124 | + } | ||
125 | + | ||
126 | + DataCompanySearch struct { | ||
127 | + Companys []CompanyItem `json:"companys"` | ||
128 | + Count int `json:"count"` | ||
129 | + } | ||
130 | +) | ||
131 | + | ||
132 | +//返回组织 | ||
133 | +type ( | ||
134 | + ReqOrgGet struct { | ||
135 | + OrgId int `json:"orgId"` | ||
136 | + // 获取标记 bit 0:获取企业数据 | ||
137 | + FetchFlag int `json:"fetchFlag"` | ||
138 | + } | ||
139 | + | ||
140 | + DataOrgGet models.Organization | ||
141 | +) | ||
142 | + | ||
143 | +//返回组织列表 | ||
144 | +type ( | ||
145 | + ReqOrgSearch struct { | ||
146 | + CompanyId int `json:"companyId"` | ||
147 | + DepName string `json:"depName"` | ||
148 | + IsOrg int `json:"isOrg"` //否是组织(是:1 不是:2) | ||
149 | + Limit int `json:"limit"` | ||
150 | + Offset int `json:"offset"` | ||
151 | + OrgCode string `json:"orgCode"` | ||
152 | + ParentId int `json:"parentId"` | ||
153 | + // 模糊匹配组织名称 | ||
154 | + MatchOrgName string `cname:"部门名称" json:"matchOrgName,omitempty"` | ||
155 | + } | ||
156 | + | ||
157 | + DataOrgSearch struct { | ||
158 | + Count int `json:"count"` | ||
159 | + Orgs []*models.Organization `json:"orgs"` | ||
160 | + } | ||
161 | +) |
1 | +package service_gateway | ||
2 | + | ||
3 | +import ( | ||
4 | + rawjson "encoding/json" | ||
5 | + "errors" | ||
6 | + "fmt" | ||
7 | + "github.com/linmadan/egglib-go/utils/json" | ||
8 | + "time" | ||
9 | + | ||
10 | + "github.com/beego/beego/v2/client/httplib" | ||
11 | +) | ||
12 | + | ||
13 | +type MessageCode struct { | ||
14 | + Code int `json:"code"` | ||
15 | + Msg string `json:"msg"` | ||
16 | +} | ||
17 | + | ||
18 | +//GatewayResponse 统一消息返回格式 | ||
19 | +type Response struct { | ||
20 | + MessageCode | ||
21 | + Data rawjson.RawMessage `json:"data"` | ||
22 | +} | ||
23 | + | ||
24 | +type BaseServiceGateway struct { | ||
25 | + ConnectTimeout time.Duration | ||
26 | + ReadWriteTimeout time.Duration | ||
27 | + host string | ||
28 | +} | ||
29 | + | ||
30 | +type Request struct { | ||
31 | + Url string | ||
32 | + Method string | ||
33 | + Param interface{} | ||
34 | +} | ||
35 | + | ||
36 | +func (gateway BaseServiceGateway) CreateRequest(url string, method string) *httplib.BeegoHTTPRequest { | ||
37 | + var request *httplib.BeegoHTTPRequest | ||
38 | + switch method { | ||
39 | + case "get", "GET": | ||
40 | + request = httplib.Get(url) | ||
41 | + case "post", "POST": | ||
42 | + request = httplib.Post(url) | ||
43 | + case "put", "PUT": | ||
44 | + request = httplib.Put(url) | ||
45 | + case "delete", "DELETE": | ||
46 | + request = httplib.Delete(url) | ||
47 | + case "head", "HEADER": | ||
48 | + request = httplib.Head(url) | ||
49 | + default: | ||
50 | + request = httplib.Get(url) | ||
51 | + } | ||
52 | + return request.SetTimeout(gateway.ConnectTimeout, gateway.ReadWriteTimeout) | ||
53 | +} | ||
54 | + | ||
55 | +func (gateway BaseServiceGateway) GetResponseData(result Response, data interface{}) error { | ||
56 | + if result.Code != 0 { | ||
57 | + return fmt.Errorf(result.Msg) | ||
58 | + } | ||
59 | + err := json.Unmarshal(result.Data, data) | ||
60 | + if err != nil { | ||
61 | + return err | ||
62 | + } | ||
63 | + return nil | ||
64 | +} | ||
65 | + | ||
66 | +func (gateway BaseServiceGateway) FastDoRequest(url, method string, param interface{}, data interface{}) error { | ||
67 | + err := gateway.DoRequest(Request{ | ||
68 | + Url: url, | ||
69 | + Method: method, | ||
70 | + Param: param, | ||
71 | + }, &data) | ||
72 | + if err != nil { | ||
73 | + return err | ||
74 | + } | ||
75 | + return nil | ||
76 | +} | ||
77 | + | ||
78 | +func (gateway BaseServiceGateway) DoRequest(requestParam Request, val interface{}) error { | ||
79 | + r := gateway.CreateRequest(requestParam.Url, requestParam.Method) | ||
80 | + req, err := r.JSONBody(requestParam.Param) | ||
81 | + if err != nil { | ||
82 | + return err | ||
83 | + } | ||
84 | + byteResult, err := req.Bytes() | ||
85 | + if err != nil { | ||
86 | + return err | ||
87 | + } | ||
88 | + var result Response | ||
89 | + err = json.Unmarshal(byteResult, &result) | ||
90 | + if err != nil { | ||
91 | + return err | ||
92 | + } | ||
93 | + if result.Code != 0 && len(result.Msg) > 0 { | ||
94 | + return errors.New(result.Msg) | ||
95 | + } | ||
96 | + err = gateway.GetResponseData(result, val) | ||
97 | + return nil | ||
98 | +} | ||
99 | + | ||
100 | +func (gateway BaseServiceGateway) Host() string { | ||
101 | + return gateway.host | ||
102 | +} | ||
103 | + | ||
104 | +func NewBaseServiceGateway(host string) BaseServiceGateway { | ||
105 | + return BaseServiceGateway{ | ||
106 | + host: host, | ||
107 | + } | ||
108 | +} |
pkg/infrastructure/allied-lib/models/user.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +//单体用户详情数据 | ||
4 | +type User struct { | ||
5 | + // 用户Id | ||
6 | + UserId int `json:"userId,omitempty"` | ||
7 | + // 基础信息ID | ||
8 | + UserBaseId int `json:"userBaseId,omitempty"` | ||
9 | + // 用户类型 | ||
10 | + UserType int `json:"userType,omitempty"` | ||
11 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
12 | + EmployeeType int `json:"employeeType,omitempty"` | ||
13 | + // IC卡号 | ||
14 | + IcCardNumber string `json:"icCardNumber,omitempty"` | ||
15 | + // 用户编号 | ||
16 | + UserCode string `json:"userCode,omitempty"` | ||
17 | + // 启用状态 | ||
18 | + EnableStatus int `json:"enableStatus,omitempty"` | ||
19 | + // 用户信息 | ||
20 | + UserInfo UserInfo `json:"userInfo,omitempty"` | ||
21 | + // 所属公司 | ||
22 | + Company *Company `json:"company,omitempty"` | ||
23 | + // 所属组织 | ||
24 | + Org *Organization `json:"org,omitempty"` | ||
25 | + // 部门 | ||
26 | + Department *Department `json:"department,omitempty"` | ||
27 | +} | ||
28 | + | ||
29 | +// UserInfo 用户信息 | ||
30 | +type UserInfo struct { | ||
31 | + Phone string `json:"phone,omitempty"` | ||
32 | + UserCode string `json:"userCode,omitempty"` | ||
33 | + Email string `json:"email,omitempty"` | ||
34 | + UserName string `json:"userName,omitempty"` | ||
35 | + Avatar string `json:"avatar,omitempty"` | ||
36 | +} | ||
37 | + | ||
38 | +// Company 公司信息 | ||
39 | +type Company struct { | ||
40 | + CompanyId int `json:"companyId,omitempty"` | ||
41 | + CompanyName string `json:"companyName,omitempty"` | ||
42 | + Status int `json:"status,omitempty"` | ||
43 | + Logo string `json:"logo,omitempty"` | ||
44 | +} | ||
45 | + | ||
46 | +// Org 组织 | ||
47 | +type Organization struct { | ||
48 | + OrgId int `json:"orgId,omitempty"` | ||
49 | + OrgCode string `json:"orgCode,omitempty"` | ||
50 | + OrgName string `json:"orgName,omitempty"` | ||
51 | +} | ||
52 | + | ||
53 | +// Department 部门 | ||
54 | +type Department struct { | ||
55 | + DepartmentId int `json:"departmentId,omitempty"` | ||
56 | + DepartmentName string `json:"departmentName,omitempty"` | ||
57 | + DepartmentNumber string `json:"departmentNumber,omitempty"` | ||
58 | +} | ||
59 | + | ||
60 | +func (org Organization) ToDepartment() *Department { | ||
61 | + return &Department{ | ||
62 | + DepartmentId: org.OrgId, | ||
63 | + DepartmentName: org.OrgName, | ||
64 | + DepartmentNumber: org.OrgCode, | ||
65 | + } | ||
66 | +} |
pkg/infrastructure/dao/unique_id_dao.go
0 → 100644
1 | +package dao | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
6 | +) | ||
7 | + | ||
8 | +type UniqueIdDao struct { | ||
9 | + transactionContext *pgTransaction.TransactionContext | ||
10 | +} | ||
11 | + | ||
12 | +func (d *UniqueIdDao) GenerateUniqueId() (int, error) { | ||
13 | + sql := " SELECT nextval('manufacture.manufacture_seq_id_seq') id;" | ||
14 | + var data = struct { | ||
15 | + Id int | ||
16 | + }{} | ||
17 | + _, err := d.transactionContext.PgTx.Query(&data, sql) | ||
18 | + if err != nil { | ||
19 | + return 0, err | ||
20 | + } | ||
21 | + return data.Id, nil | ||
22 | +} | ||
23 | + | ||
24 | +func NewUniqueIdDao(transactionContext *pgTransaction.TransactionContext) (*UniqueIdDao, error) { | ||
25 | + if transactionContext == nil { | ||
26 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
27 | + } else { | ||
28 | + return &UniqueIdDao{ | ||
29 | + transactionContext: transactionContext, | ||
30 | + }, nil | ||
31 | + } | ||
32 | +} |
1 | +package domainService | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant" | ||
5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/gateway/allied_creation_user" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/models" | ||
8 | +) | ||
9 | + | ||
10 | +type UserService struct { | ||
11 | + internalUserService *allied_creation_user.HttpLibAlliedCreationUser | ||
12 | +} | ||
13 | + | ||
14 | +func (svr *UserService) User(id int) (*domain.User, error) { | ||
15 | + rsp, err := svr.internalUserService.User(id) | ||
16 | + if err != nil { | ||
17 | + return nil, err | ||
18 | + } | ||
19 | + return svr.ToUser(rsp), nil | ||
20 | +} | ||
21 | + | ||
22 | +//func(svr *UserService)Organization(id int)(*domain.Org,error){ | ||
23 | +// rsp,err:= svr.internalUserService.Organization(id) | ||
24 | +// if err!=nil{ | ||
25 | +// return nil, err | ||
26 | +// } | ||
27 | +// return svr.ToUser(rsp), nil | ||
28 | +//} | ||
29 | + | ||
30 | +func (svr *UserService) ToUser(from *models.User) *domain.User { | ||
31 | + return &domain.User{ | ||
32 | + UserId: from.UserId, | ||
33 | + UserName: from.UserInfo.UserName, | ||
34 | + EmployeeType: from.EmployeeType, | ||
35 | + IcCardNumber: from.IcCardNumber, | ||
36 | + Avatar: from.UserInfo.Avatar, | ||
37 | + Phone: from.UserInfo.Phone, | ||
38 | + } | ||
39 | +} | ||
40 | + | ||
41 | +//func(svr *UserService) ToOrg(from *models.Organization)*domain.Org{ | ||
42 | +// | ||
43 | +//} | ||
44 | + | ||
45 | +func NewUserService() *UserService { | ||
46 | + return &UserService{ | ||
47 | + internalUserService: allied_creation_user.NewHttpLibAlliedCreationUser(constant.ALLIED_CREATION_USER_HOST), | ||
48 | + } | ||
49 | +} |
@@ -36,19 +36,13 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | @@ -36,19 +36,13 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | ||
36 | "updated_at", | 36 | "updated_at", |
37 | "deleted_at", | 37 | "deleted_at", |
38 | } | 38 | } |
39 | - insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | ||
40 | - insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) | 39 | + insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "workshop_id", "deleted_at")) |
40 | + insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlbuilder.RemoveSqlFields(sqlBuildFields, "workshop_id", "deleted_at")) | ||
41 | returningFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | 41 | returningFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) |
42 | - updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "workshop_id") | 42 | + updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "workshop_id", "deleted_at") |
43 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) | 43 | updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) |
44 | tx := repository.transactionContext.PgTx | 44 | tx := repository.transactionContext.PgTx |
45 | if workshop.Identify() == nil { | 45 | if workshop.Identify() == nil { |
46 | - workshopId, err := repository.nextIdentify() | ||
47 | - if err != nil { | ||
48 | - return workshop, err | ||
49 | - } else { | ||
50 | - workshop.WorkshopId = int(workshopId) | ||
51 | - } | ||
52 | if _, err := tx.QueryOne( | 46 | if _, err := tx.QueryOne( |
53 | pg.Scan( | 47 | pg.Scan( |
54 | &workshop.CompanyId, | 48 | &workshop.CompanyId, |
@@ -56,21 +50,19 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | @@ -56,21 +50,19 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | ||
56 | &workshop.WorkshopId, | 50 | &workshop.WorkshopId, |
57 | &workshop.WorkshopName, | 51 | &workshop.WorkshopName, |
58 | &workshop.Principal, | 52 | &workshop.Principal, |
59 | - pg.Array(&workshop.ProductLines), | 53 | + &workshop.ProductLines, |
60 | &workshop.CreatedAt, | 54 | &workshop.CreatedAt, |
61 | &workshop.UpdatedAt, | 55 | &workshop.UpdatedAt, |
62 | &workshop.DeletedAt, | 56 | &workshop.DeletedAt, |
63 | ), | 57 | ), |
64 | - fmt.Sprintf("INSERT INTO workshops (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | 58 | + fmt.Sprintf("INSERT INTO manufacture.workshop (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), |
65 | workshop.CompanyId, | 59 | workshop.CompanyId, |
66 | workshop.OrgId, | 60 | workshop.OrgId, |
67 | - workshop.WorkshopId, | ||
68 | workshop.WorkshopName, | 61 | workshop.WorkshopName, |
69 | workshop.Principal, | 62 | workshop.Principal, |
70 | - pg.Array(workshop.ProductLines), | 63 | + workshop.ProductLines, |
71 | workshop.CreatedAt, | 64 | workshop.CreatedAt, |
72 | workshop.UpdatedAt, | 65 | workshop.UpdatedAt, |
73 | - workshop.DeletedAt, | ||
74 | ); err != nil { | 66 | ); err != nil { |
75 | return workshop, err | 67 | return workshop, err |
76 | } | 68 | } |
@@ -82,21 +74,19 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | @@ -82,21 +74,19 @@ func (repository *WorkshopRepository) Save(workshop *domain.Workshop) (*domain.W | ||
82 | &workshop.WorkshopId, | 74 | &workshop.WorkshopId, |
83 | &workshop.WorkshopName, | 75 | &workshop.WorkshopName, |
84 | &workshop.Principal, | 76 | &workshop.Principal, |
85 | - pg.Array(&workshop.ProductLines), | 77 | + &workshop.ProductLines, |
86 | &workshop.CreatedAt, | 78 | &workshop.CreatedAt, |
87 | &workshop.UpdatedAt, | 79 | &workshop.UpdatedAt, |
88 | &workshop.DeletedAt, | 80 | &workshop.DeletedAt, |
89 | ), | 81 | ), |
90 | - fmt.Sprintf("UPDATE workshops SET %s WHERE workshop_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | 82 | + fmt.Sprintf("UPDATE manufacture.workshop SET %s WHERE workshop_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), |
91 | workshop.CompanyId, | 83 | workshop.CompanyId, |
92 | workshop.OrgId, | 84 | workshop.OrgId, |
93 | - workshop.WorkshopId, | ||
94 | workshop.WorkshopName, | 85 | workshop.WorkshopName, |
95 | workshop.Principal, | 86 | workshop.Principal, |
96 | - pg.Array(workshop.ProductLines), | 87 | + workshop.ProductLines, |
97 | workshop.CreatedAt, | 88 | workshop.CreatedAt, |
98 | workshop.UpdatedAt, | 89 | workshop.UpdatedAt, |
99 | - workshop.DeletedAt, | ||
100 | workshop.Identify(), | 90 | workshop.Identify(), |
101 | ); err != nil { | 91 | ); err != nil { |
102 | return workshop, err | 92 | return workshop, err |
@@ -117,7 +107,11 @@ func (repository *WorkshopRepository) FindOne(queryOptions map[string]interface{ | @@ -117,7 +107,11 @@ func (repository *WorkshopRepository) FindOne(queryOptions map[string]interface{ | ||
117 | tx := repository.transactionContext.PgTx | 107 | tx := repository.transactionContext.PgTx |
118 | workshopModel := new(models.Workshop) | 108 | workshopModel := new(models.Workshop) |
119 | query := sqlbuilder.BuildQuery(tx.Model(workshopModel), queryOptions) | 109 | query := sqlbuilder.BuildQuery(tx.Model(workshopModel), queryOptions) |
120 | - query.SetWhereByQueryOption("workshop.workshop_id = ?", "workshopId") | 110 | + query.AllWithDeleted() |
111 | + query.SetWhereByQueryOption("workshop_id = ?", "workshopId") | ||
112 | + query.SetWhereByQueryOption("company_id = ?", "companyId") | ||
113 | + query.SetWhereByQueryOption("org_id = ?", "orgId") | ||
114 | + query.SetWhereByQueryOption("workshop_name=?", "workshopName") | ||
121 | if err := query.First(); err != nil { | 115 | if err := query.First(); err != nil { |
122 | if err.Error() == "pg: no rows in result set" { | 116 | if err.Error() == "pg: no rows in result set" { |
123 | return nil, fmt.Errorf("没有此资源") | 117 | return nil, fmt.Errorf("没有此资源") |
@@ -136,7 +130,7 @@ func (repository *WorkshopRepository) Find(queryOptions map[string]interface{}) | @@ -136,7 +130,7 @@ func (repository *WorkshopRepository) Find(queryOptions map[string]interface{}) | ||
136 | var workshopModels []*models.Workshop | 130 | var workshopModels []*models.Workshop |
137 | workshops := make([]*domain.Workshop, 0) | 131 | workshops := make([]*domain.Workshop, 0) |
138 | query := sqlbuilder.BuildQuery(tx.Model(&workshopModels), queryOptions) | 132 | query := sqlbuilder.BuildQuery(tx.Model(&workshopModels), queryOptions) |
139 | - query.SetOffsetAndLimit(20) | 133 | + query.SetOffsetAndLimit(domain.MaxQueryRow) |
140 | query.SetOrderDirect("workshop_id", "DESC") | 134 | query.SetOrderDirect("workshop_id", "DESC") |
141 | if count, err := query.SelectAndCount(); err != nil { | 135 | if count, err := query.SelectAndCount(); err != nil { |
142 | return 0, workshops, err | 136 | return 0, workshops, err |
pkg/port/beego/controllers/controller.go
0 → 100644
1 | +package controllers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/beego/beego/v2/server/web/context" | ||
5 | + "github.com/linmadan/egglib-go/web/beego" | ||
6 | + "github.com/linmadan/egglib-go/web/beego/utils" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/log" | ||
10 | + "strconv" | ||
11 | +) | ||
12 | + | ||
13 | +func ResponseGrid(c beego.BaseController, data interface{}, err error) { | ||
14 | + var response utils.JsonResponse | ||
15 | + if err != nil { | ||
16 | + response = utils.ResponseError(c.Ctx, err) | ||
17 | + } else { | ||
18 | + response = ResponseGridData(c.Ctx, data) | ||
19 | + } | ||
20 | + c.Data["json"] = response | ||
21 | + c.ServeJSON() | ||
22 | +} | ||
23 | + | ||
24 | +func ResponseGridData(ctx *context.Context, data interface{}) utils.JsonResponse { | ||
25 | + jsonResponse := utils.JsonResponse{} | ||
26 | + jsonResponse["code"] = 0 | ||
27 | + jsonResponse["msg"] = "ok" | ||
28 | + jsonResponse["data"] = map[string]interface{}{"grid": data} | ||
29 | + ctx.Input.SetData("outputData", jsonResponse) | ||
30 | + return jsonResponse | ||
31 | +} | ||
32 | + | ||
33 | +func Must(err error) { | ||
34 | + if err != nil { | ||
35 | + log.Logger.Error(err.Error()) | ||
36 | + } | ||
37 | +} | ||
38 | + | ||
39 | +// ParseOperateInfo 从头部解析操作对象信息 | ||
40 | +func ParseOperateInfo(c beego.BaseController) *domain.OperateInfo { | ||
41 | + opt := &domain.OperateInfo{} | ||
42 | + opt.UserId = header(c, constant.HeaderUserId) | ||
43 | + opt.CompanyId = header(c, constant.HeaderCompanyId) | ||
44 | + opt.OrgId = header(c, constant.HeaderOrgId) | ||
45 | + return opt | ||
46 | +} | ||
47 | + | ||
48 | +func header(c beego.BaseController, key string) int { | ||
49 | + if len(c.Ctx.Input.Header(key)) == 0 { | ||
50 | + return 0 | ||
51 | + } | ||
52 | + res, err := strconv.Atoi(c.Ctx.Input.Header(key)) | ||
53 | + if err != nil { | ||
54 | + log.Logger.Error(err.Error()) | ||
55 | + return 0 | ||
56 | + } | ||
57 | + return res | ||
58 | +} |
@@ -41,9 +41,11 @@ func (controller *ProductLineController) GetProductLine() { | @@ -41,9 +41,11 @@ func (controller *ProductLineController) GetProductLine() { | ||
41 | func (controller *ProductLineController) RemoveProductLine() { | 41 | func (controller *ProductLineController) RemoveProductLine() { |
42 | productLineService := service.NewProductLineService(nil) | 42 | productLineService := service.NewProductLineService(nil) |
43 | removeProductLineCommand := &command.RemoveProductLineCommand{} | 43 | removeProductLineCommand := &command.RemoveProductLineCommand{} |
44 | - controller.Unmarshal(removeProductLineCommand) | 44 | + //controller.Unmarshal(removeProductLineCommand) |
45 | lineId, _ := controller.GetInt(":lineId") | 45 | lineId, _ := controller.GetInt(":lineId") |
46 | + workshopId, _ := controller.GetInt("workshopId") | ||
46 | removeProductLineCommand.LineId = lineId | 47 | removeProductLineCommand.LineId = lineId |
48 | + removeProductLineCommand.WorkshopId = workshopId | ||
47 | data, err := productLineService.RemoveProductLine(removeProductLineCommand) | 49 | data, err := productLineService.RemoveProductLine(removeProductLineCommand) |
48 | controller.Response(data, err) | 50 | controller.Response(data, err) |
49 | } | 51 | } |
@@ -44,6 +44,10 @@ func (controller *ProductSectionController) RemoveProductSection() { | @@ -44,6 +44,10 @@ func (controller *ProductSectionController) RemoveProductSection() { | ||
44 | controller.Unmarshal(removeProductSectionCommand) | 44 | controller.Unmarshal(removeProductSectionCommand) |
45 | sectionId, _ := controller.GetInt(":sectionId") | 45 | sectionId, _ := controller.GetInt(":sectionId") |
46 | removeProductSectionCommand.SectionId = sectionId | 46 | removeProductSectionCommand.SectionId = sectionId |
47 | + lineId, _ := controller.GetInt("lineId") | ||
48 | + workshopId, _ := controller.GetInt("workshopId") | ||
49 | + removeProductSectionCommand.LineId = lineId | ||
50 | + removeProductSectionCommand.WorkshopId = workshopId | ||
47 | data, err := productSectionService.RemoveProductSection(removeProductSectionCommand) | 51 | data, err := productSectionService.RemoveProductSection(removeProductSectionCommand) |
48 | controller.Response(data, err) | 52 | controller.Response(data, err) |
49 | } | 53 | } |
@@ -15,7 +15,7 @@ func (controller *WorkshopController) CreateWorkshop() { | @@ -15,7 +15,7 @@ func (controller *WorkshopController) CreateWorkshop() { | ||
15 | workshopService := service.NewWorkshopService(nil) | 15 | workshopService := service.NewWorkshopService(nil) |
16 | createWorkshopCommand := &command.CreateWorkshopCommand{} | 16 | createWorkshopCommand := &command.CreateWorkshopCommand{} |
17 | controller.Unmarshal(createWorkshopCommand) | 17 | controller.Unmarshal(createWorkshopCommand) |
18 | - data, err := workshopService.CreateWorkshop(createWorkshopCommand) | 18 | + data, err := workshopService.CreateWorkshop(ParseOperateInfo(controller.BaseController), createWorkshopCommand) |
19 | controller.Response(data, err) | 19 | controller.Response(data, err) |
20 | } | 20 | } |
21 | 21 |
-
请 注册 或 登录 后发表评论