作者 陈志颖

Merge branch 'dev' of http://gitlab.fjmaimaimai.com/mmm-go-pp/partner01 into feat/order-domain

merge
  1 +version: v1
  2 +kind: Schema
  3 +metadata:
  4 + name: companyAdmin
  5 + description: 公司管理员信息值对象
  6 + attributes:
  7 + - ref: userAccount
  8 + required: true
  9 + - ref: userName
  10 + required: true
@@ -23,4 +23,4 @@ metadata: @@ -23,4 +23,4 @@ metadata:
23 - name: admin 23 - name: admin
24 description: 公司主管理员 24 description: 公司主管理员
25 type: 25 type:
26 - schema: userInfo  
  26 + schema: companyAdmin
@@ -13,13 +13,11 @@ metadata: @@ -13,13 +13,11 @@ metadata:
13 required: true 13 required: true
14 - ref: remarks 14 - ref: remarks
15 required: false 15 required: false
16 - - name: adminId  
17 - description: 公司主管理员Id  
18 - type:  
19 - primitive: int64  
20 - result:  
21 - - ref: count 16 + - ref: userAccount
22 required: true 17 required: true
  18 + - ref: userName
  19 + required: true
  20 + result:
23 - name: company 21 - name: company
24 type: 22 type:
25 schema: company 23 schema: company
@@ -8,8 +8,6 @@ metadata: @@ -8,8 +8,6 @@ metadata:
8 - ref: companyId 8 - ref: companyId
9 required: true 9 required: true
10 result: 10 result:
11 - - ref: count  
12 - required: true  
13 - name: company 11 - name: company
14 type: 12 type:
15 schema: company 13 schema: company
@@ -7,7 +7,9 @@ metadata: @@ -7,7 +7,9 @@ metadata:
7 payload: 7 payload:
8 - ref: companyId 8 - ref: companyId
9 required: true 9 required: true
10 - - ref: userId 10 + - ref: userAccount
  11 + required: true
  12 + - ref: userName
11 required: true 13 required: true
12 result: 14 result:
13 - name: company 15 - name: company
@@ -15,10 +15,9 @@ metadata: @@ -15,10 +15,9 @@ metadata:
15 required: false 15 required: false
16 - ref: remarks 16 - ref: remarks
17 required: false 17 required: false
18 - - name: adminId  
19 - description: 公司主管理员Id  
20 - type:  
21 - primitive: int64 18 + - ref: userAccount
  19 + required: false
  20 + - ref: userName
22 required: false 21 required: false
23 result: 22 result:
24 - name: company 23 - name: company
  1 +package command
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type ConvertCompanyStatusCommand struct {
  10 + // 公司Id
  11 + CompanyId int64 `json:"companyId" valid:"Required"`
  12 + // 状态 1正常 2禁用
  13 + Status int64 `json:"status" valid:"Required"`
  14 +}
  15 +
  16 +func (convertCompanyStatusCommand *ConvertCompanyStatusCommand) Valid(validation *validation.Validation) {
  17 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  18 +}
  19 +
  20 +func (convertCompanyStatusCommand *ConvertCompanyStatusCommand) ValidateCommand() error {
  21 + valid := validation.Validation{}
  22 + b, err := valid.Valid(convertCompanyStatusCommand)
  23 + if err != nil {
  24 + return err
  25 + }
  26 + if !b {
  27 + for _, validErr := range valid.Errors {
  28 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  29 + }
  30 + }
  31 + return nil
  32 +}
  1 +package command
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type CreateCompanyCommand struct {
  10 + // 公司名称
  11 + Name string `json:"name" valid:"Required"`
  12 + // 公司简称
  13 + Abbreviation string `json:"abbreviation" valid:"Required"`
  14 + // 状态 1正常 2禁用
  15 + Status int64 `json:"status" valid:"Required"`
  16 + // 备注
  17 + Remarks string `json:"remarks,omitempty"`
  18 + // 公司主管理员账号
  19 + UserAccount string `json:"userAccount" valid:"Required"`
  20 + // 公司主管理员姓名
  21 + UserName string `json:"userName" valid:"Required"`
  22 +}
  23 +
  24 +func (createCompanyCommand *CreateCompanyCommand) Valid(validation *validation.Validation) {
  25 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  26 +}
  27 +
  28 +func (createCompanyCommand *CreateCompanyCommand) ValidateCommand() error {
  29 + valid := validation.Validation{}
  30 + b, err := valid.Valid(createCompanyCommand)
  31 + if err != nil {
  32 + return err
  33 + }
  34 + if !b {
  35 + for _, validErr := range valid.Errors {
  36 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  37 + }
  38 + }
  39 + return nil
  40 +}
  1 +package command
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type RemoveCompanyCommand struct {
  10 + // 公司Id
  11 + CompanyId int64 `json:"companyId" valid:"Required"`
  12 +}
  13 +
  14 +func (removeCompanyCommand *RemoveCompanyCommand) Valid(validation *validation.Validation) {
  15 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  16 +}
  17 +
  18 +func (removeCompanyCommand *RemoveCompanyCommand) ValidateCommand() error {
  19 + valid := validation.Validation{}
  20 + b, err := valid.Valid(removeCompanyCommand)
  21 + if err != nil {
  22 + return err
  23 + }
  24 + if !b {
  25 + for _, validErr := range valid.Errors {
  26 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  27 + }
  28 + }
  29 + return nil
  30 +}
  1 +package command
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type SetCompanyAdminCommand struct {
  10 + // 公司Id
  11 + CompanyId int64 `json:"companyId" valid:"Required"`
  12 + // 公司主管理员账号
  13 + UserAccount string `json:"userAccount" valid:"Required"`
  14 + // 公司主管理员姓名
  15 + UserName string `json:"userName" valid:"Required"`
  16 +}
  17 +
  18 +func (setCompanyAdminCommand *SetCompanyAdminCommand) Valid(validation *validation.Validation) {
  19 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  20 +}
  21 +
  22 +func (setCompanyAdminCommand *SetCompanyAdminCommand) ValidateCommand() error {
  23 + valid := validation.Validation{}
  24 + b, err := valid.Valid(setCompanyAdminCommand)
  25 + if err != nil {
  26 + return err
  27 + }
  28 + if !b {
  29 + for _, validErr := range valid.Errors {
  30 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  31 + }
  32 + }
  33 + return nil
  34 +}
  1 +package command
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type UpdateCompanyCommand struct {
  10 + // 公司Id
  11 + CompanyId int64 `json:"companyId" valid:"Required"`
  12 + // 公司名称
  13 + Name string `json:"name,omitempty"`
  14 + // 公司简称
  15 + Abbreviation string `json:"abbreviation,omitempty"`
  16 + // 状态 1正常 2禁用
  17 + Status int64 `json:"status,omitempty"`
  18 + // 备注
  19 + Remarks string `json:"remarks,omitempty"`
  20 + // 公司主管理员账号
  21 + UserAccount string `json:"userAccount,omitempty"`
  22 + // 公司主管理员姓名
  23 + UserName string `json:"userName,omitempty"`
  24 +}
  25 +
  26 +func (updateCompanyCommand *UpdateCompanyCommand) Valid(validation *validation.Validation) {
  27 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  28 +}
  29 +
  30 +func (updateCompanyCommand *UpdateCompanyCommand) ValidateCommand() error {
  31 + valid := validation.Validation{}
  32 + b, err := valid.Valid(updateCompanyCommand)
  33 + if err != nil {
  34 + return err
  35 + }
  36 + if !b {
  37 + for _, validErr := range valid.Errors {
  38 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  39 + }
  40 + }
  41 + return nil
  42 +}
  1 +package query
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type GetCompanyQuery struct {
  10 + // 公司Id
  11 + CompanyId int64 `json:"companyId" valid:"Required"`
  12 +}
  13 +
  14 +func (getCompanyQuery *GetCompanyQuery) Valid(validation *validation.Validation) {
  15 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  16 +}
  17 +
  18 +func (getCompanyQuery *GetCompanyQuery) ValidateQuery() error {
  19 + valid := validation.Validation{}
  20 + b, err := valid.Valid(getCompanyQuery)
  21 + if err != nil {
  22 + return err
  23 + }
  24 + if !b {
  25 + for _, validErr := range valid.Errors {
  26 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  27 + }
  28 + }
  29 + return nil
  30 +}
  1 +package query
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + "github.com/beego/beego/v2/core/validation"
  7 +)
  8 +
  9 +type ListCompanyQuery struct {
  10 + // 查询偏离量
  11 + Offset int `json:"offset" valid:"Required"`
  12 + // 查询限制
  13 + Limit int `json:"limit" valid:"Required"`
  14 +}
  15 +
  16 +func (listCompanyQuery *ListCompanyQuery) Valid(validation *validation.Validation) {
  17 + // _ = validation.SetError("CustomValid", "未实现的自定义认证")
  18 +}
  19 +
  20 +func (listCompanyQuery *ListCompanyQuery) ValidateQuery() error {
  21 + valid := validation.Validation{}
  22 + b, err := valid.Valid(listCompanyQuery)
  23 + if err != nil {
  24 + return err
  25 + }
  26 + if !b {
  27 + for _, validErr := range valid.Errors {
  28 + return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
  29 + }
  30 + }
  31 + return nil
  32 +}
  1 +package service
  2 +
  3 +import (
  4 + "fmt"
  5 + "github.com/linmadan/egglib-go/core/application"
  6 + "github.com/linmadan/egglib-go/utils/tool_funs"
  7 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/command"
  8 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/query"
  9 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/factory"
  10 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain"
  11 + "time"
  12 +)
  13 +
  14 +// 公司服务
  15 +type CompanyService struct {
  16 +}
  17 +
  18 +// 公司状态转换 禁用、启用
  19 +func (companyService *CompanyService) ConvertCompanyStatus(convertCompanyStatusCommand *command.ConvertCompanyStatusCommand) (interface{}, error) {
  20 + if err := convertCompanyStatusCommand.ValidateCommand(); err != nil {
  21 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  22 + }
  23 + transactionContext, err := factory.CreateTransactionContext(nil)
  24 + if err != nil {
  25 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  26 + }
  27 + if err := transactionContext.StartTransaction(); err != nil {
  28 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  29 + }
  30 + defer func() {
  31 + transactionContext.RollbackTransaction()
  32 + }()
  33 + var companyRepository domain.CompanyRepository
  34 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  35 + "transactionContext": transactionContext,
  36 + }); err != nil {
  37 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  38 + } else {
  39 + companyRepository = value
  40 + }
  41 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": convertCompanyStatusCommand.CompanyId})
  42 + if err != nil {
  43 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  44 + }
  45 + if company == nil {
  46 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(convertCompanyStatusCommand.CompanyId)))
  47 + }
  48 + if err := company.Update(tool_funs.SimpleStructToMap(convertCompanyStatusCommand)); err != nil {
  49 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  50 + }
  51 + if company, err := companyRepository.Save(company); err != nil {
  52 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  53 + } else {
  54 + if err := transactionContext.CommitTransaction(); err != nil {
  55 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  56 + }
  57 + return company, nil
  58 + }
  59 +}
  60 +
  61 +// 创建
  62 +func (companyService *CompanyService) CreateCompany(createCompanyCommand *command.CreateCompanyCommand) (interface{}, error) {
  63 + if err := createCompanyCommand.ValidateCommand(); err != nil {
  64 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  65 + }
  66 + transactionContext, err := factory.CreateTransactionContext(nil)
  67 + if err != nil {
  68 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  69 + }
  70 + if err := transactionContext.StartTransaction(); err != nil {
  71 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  72 + }
  73 + defer func() {
  74 + transactionContext.RollbackTransaction()
  75 + }()
  76 +
  77 + newCompany := &domain.Company{
  78 + CompanyInfo: &domain.CompanyInfo{
  79 + Name: createCompanyCommand.Name, // 公司名称
  80 + Abbreviation: createCompanyCommand.Abbreviation, // 公司简称
  81 + Logo: "", // 公司logo
  82 + Phone: "", // 公司联系电话
  83 + Status: createCompanyCommand.Status, // 状态 1正常 2禁用
  84 + Remarks: createCompanyCommand.Remarks, // 备注
  85 + Enable: 1, // 是否有效【1:有效】【2:无效】
  86 + Admin: &domain.CompanyAdmin{
  87 + UserAccount: createCompanyCommand.UserAccount, // 用户手机号
  88 + UserName: createCompanyCommand.UserName, // 用户名称
  89 + }, // 公司主管理员
  90 + },
  91 + CreateAt: time.Now(),
  92 + UpdateAt: time.Now(),
  93 + }
  94 + var companyRepository domain.CompanyRepository
  95 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  96 + "transactionContext": transactionContext,
  97 + }); err != nil {
  98 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  99 + } else {
  100 + companyRepository = value
  101 + }
  102 + if company, err := companyRepository.Save(newCompany); err != nil {
  103 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  104 + } else {
  105 + // todo 新增公司管理员
  106 +
  107 + if err := transactionContext.CommitTransaction(); err != nil {
  108 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  109 + }
  110 + return company, nil
  111 + }
  112 +}
  113 +
  114 +// 返回
  115 +func (companyService *CompanyService) GetCompany(getCompanyQuery *query.GetCompanyQuery) (interface{}, error) {
  116 + if err := getCompanyQuery.ValidateQuery(); err != nil {
  117 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  118 + }
  119 + transactionContext, err := factory.CreateTransactionContext(nil)
  120 + if err != nil {
  121 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  122 + }
  123 + if err := transactionContext.StartTransaction(); err != nil {
  124 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  125 + }
  126 + defer func() {
  127 + transactionContext.RollbackTransaction()
  128 + }()
  129 + var companyRepository domain.CompanyRepository
  130 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  131 + "transactionContext": transactionContext,
  132 + }); err != nil {
  133 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  134 + } else {
  135 + companyRepository = value
  136 + }
  137 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": getCompanyQuery.CompanyId})
  138 + if err != nil {
  139 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  140 + }
  141 + if company == nil {
  142 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getCompanyQuery.CompanyId)))
  143 + } else {
  144 + if err := transactionContext.CommitTransaction(); err != nil {
  145 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  146 + }
  147 + return company, nil
  148 + }
  149 +}
  150 +
  151 +// 返回列表
  152 +func (companyService *CompanyService) ListCompany(listCompanyQuery *query.ListCompanyQuery) (interface{}, error) {
  153 + if err := listCompanyQuery.ValidateQuery(); err != nil {
  154 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  155 + }
  156 + transactionContext, err := factory.CreateTransactionContext(nil)
  157 + if err != nil {
  158 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  159 + }
  160 + if err := transactionContext.StartTransaction(); err != nil {
  161 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  162 + }
  163 + defer func() {
  164 + transactionContext.RollbackTransaction()
  165 + }()
  166 + var companyRepository domain.CompanyRepository
  167 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  168 + "transactionContext": transactionContext,
  169 + }); err != nil {
  170 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  171 + } else {
  172 + companyRepository = value
  173 + }
  174 + if count, companies, err := companyRepository.Find(tool_funs.SimpleStructToMap(listCompanyQuery)); err != nil {
  175 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  176 + } else {
  177 + if err := transactionContext.CommitTransaction(); err != nil {
  178 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  179 + }
  180 + return map[string]interface{}{
  181 + "count": count,
  182 + "companies": companies,
  183 + }, nil
  184 + }
  185 +}
  186 +
  187 +// 移除
  188 +func (companyService *CompanyService) RemoveCompany(removeCompanyCommand *command.RemoveCompanyCommand) (interface{}, error) {
  189 + if err := removeCompanyCommand.ValidateCommand(); err != nil {
  190 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  191 + }
  192 + transactionContext, err := factory.CreateTransactionContext(nil)
  193 + if err != nil {
  194 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  195 + }
  196 + if err := transactionContext.StartTransaction(); err != nil {
  197 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  198 + }
  199 + defer func() {
  200 + transactionContext.RollbackTransaction()
  201 + }()
  202 + var companyRepository domain.CompanyRepository
  203 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  204 + "transactionContext": transactionContext,
  205 + }); err != nil {
  206 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  207 + } else {
  208 + companyRepository = value
  209 + }
  210 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": removeCompanyCommand.CompanyId})
  211 + if err != nil {
  212 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  213 + }
  214 + if company == nil {
  215 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeCompanyCommand.CompanyId)))
  216 + }
  217 + if company, err := companyRepository.Remove(company); err != nil {
  218 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  219 + } else {
  220 + if err := transactionContext.CommitTransaction(); err != nil {
  221 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  222 + }
  223 + return company, nil
  224 + }
  225 +}
  226 +
  227 +// 设置公司管理员
  228 +func (companyService *CompanyService) SetCompanyAdmin(setCompanyAdminCommand *command.SetCompanyAdminCommand) (interface{}, error) {
  229 + if err := setCompanyAdminCommand.ValidateCommand(); err != nil {
  230 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  231 + }
  232 + transactionContext, err := factory.CreateTransactionContext(nil)
  233 + if err != nil {
  234 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  235 + }
  236 + if err := transactionContext.StartTransaction(); err != nil {
  237 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  238 + }
  239 + defer func() {
  240 + transactionContext.RollbackTransaction()
  241 + }()
  242 + var companyRepository domain.CompanyRepository
  243 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  244 + "transactionContext": transactionContext,
  245 + }); err != nil {
  246 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  247 + } else {
  248 + companyRepository = value
  249 + }
  250 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": setCompanyAdminCommand.CompanyId})
  251 + if err != nil {
  252 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  253 + }
  254 + if company == nil {
  255 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(setCompanyAdminCommand.CompanyId)))
  256 + }
  257 +
  258 + newCompanyAdmin := &domain.CompanyAdmin{
  259 + UserAccount: setCompanyAdminCommand.UserAccount, // 用户手机号
  260 + UserName: setCompanyAdminCommand.UserName, // 用户名称
  261 + }
  262 + // 更改公司管理员信息
  263 + if err := company.SetCompanyAdmin(newCompanyAdmin); err != nil {
  264 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  265 + }
  266 +
  267 + if company, err := companyRepository.Save(company); err != nil {
  268 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  269 + } else {
  270 + // todo 更改公司管理员
  271 +
  272 + if err := transactionContext.CommitTransaction(); err != nil {
  273 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  274 + }
  275 + return company, nil
  276 + }
  277 +}
  278 +
  279 +// 更新
  280 +func (companyService *CompanyService) UpdateCompany(updateCompanyCommand *command.UpdateCompanyCommand) (interface{}, error) {
  281 + if err := updateCompanyCommand.ValidateCommand(); err != nil {
  282 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  283 + }
  284 + transactionContext, err := factory.CreateTransactionContext(nil)
  285 + if err != nil {
  286 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  287 + }
  288 + if err := transactionContext.StartTransaction(); err != nil {
  289 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  290 + }
  291 + defer func() {
  292 + transactionContext.RollbackTransaction()
  293 + }()
  294 + var companyRepository domain.CompanyRepository
  295 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  296 + "transactionContext": transactionContext,
  297 + }); err != nil {
  298 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  299 + } else {
  300 + companyRepository = value
  301 + }
  302 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": updateCompanyCommand.CompanyId})
  303 + if err != nil {
  304 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  305 + }
  306 + if company == nil {
  307 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateCompanyCommand.CompanyId)))
  308 + }
  309 + if err := company.Update(tool_funs.SimpleStructToMap(updateCompanyCommand)); err != nil {
  310 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  311 + }
  312 +
  313 + // 更改公司管理员信息
  314 + if updateCompanyCommand.UserAccount != "" || updateCompanyCommand.UserName != "" {
  315 + companyAdmin := company.CompanyInfo.Admin
  316 + if updateCompanyCommand.UserAccount != "" {
  317 + companyAdmin.UserAccount = updateCompanyCommand.UserAccount // 用户手机号
  318 + }
  319 + if updateCompanyCommand.UserName != "" {
  320 + companyAdmin.UserName = updateCompanyCommand.UserName // 用户名称
  321 + }
  322 + if err := company.SetCompanyAdmin(companyAdmin); err != nil {
  323 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  324 + }
  325 +
  326 + // todo 更改公司管理员
  327 + }
  328 +
  329 + if company, err := companyRepository.Save(company); err != nil {
  330 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  331 + } else {
  332 + if err := transactionContext.CommitTransaction(); err != nil {
  333 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  334 + }
  335 + return company, nil
  336 + }
  337 +}
  338 +
  339 +func NewCompanyService(options map[string]interface{}) *CompanyService {
  340 + newCompanyService := &CompanyService{}
  341 + return newCompanyService
  342 +}
@@ -34,9 +34,6 @@ func (company *Company) Update(data map[string]interface{}) error { @@ -34,9 +34,6 @@ func (company *Company) Update(data map[string]interface{}) error {
34 if companyId, ok := data["companyId"]; ok { 34 if companyId, ok := data["companyId"]; ok {
35 company.CompanyId = companyId.(int64) 35 company.CompanyId = companyId.(int64)
36 } 36 }
37 - if companyId, ok := data["companyId"]; ok {  
38 - company.CompanyInfo.CompanyId = companyId.(int64)  
39 - }  
40 if name, ok := data["name"]; ok { 37 if name, ok := data["name"]; ok {
41 company.CompanyInfo.Name = name.(string) 38 company.CompanyInfo.Name = name.(string)
42 } 39 }
@@ -58,5 +55,28 @@ func (company *Company) Update(data map[string]interface{}) error { @@ -58,5 +55,28 @@ func (company *Company) Update(data map[string]interface{}) error {
58 if enable, ok := data["enable"]; ok { 55 if enable, ok := data["enable"]; ok {
59 company.CompanyInfo.Enable = enable.(int64) 56 company.CompanyInfo.Enable = enable.(int64)
60 } 57 }
  58 + if userAccount, ok := data["userAccount"]; ok {
  59 + company.CompanyInfo.Admin.UserAccount = userAccount.(string)
  60 + }
  61 + if userName, ok := data["userName"]; ok {
  62 + company.CompanyInfo.Admin.UserName = userName.(string)
  63 + }
  64 +
  65 + if createAt, ok := data["createAt"]; ok {
  66 + company.CreateAt = createAt.(time.Time)
  67 + }
  68 + if updateAt, ok := data["updateAt"]; ok {
  69 + company.UpdateAt = updateAt.(time.Time)
  70 + }
  71 + if deleteAt, ok := data["deleteAt"]; ok {
  72 + company.DeleteAt = deleteAt.(time.Time)
  73 + }
  74 +
  75 + return nil
  76 +}
  77 +
  78 +// 更改公司管理员信息
  79 +func (company *Company) SetCompanyAdmin(admin *CompanyAdmin) error {
  80 + company.CompanyInfo.Admin = admin
61 return nil 81 return nil
62 } 82 }
@@ -2,22 +2,18 @@ package domain @@ -2,22 +2,18 @@ package domain
2 2
3 // 公司信息 3 // 公司信息
4 type CompanyInfo struct { 4 type CompanyInfo struct {
5 - // 公司Id  
6 - CompanyId int64 `json:"companyId"`  
7 - // 公司名称  
8 - Name string `json:"name"`  
9 - // 公司简称  
10 - Abbreviation string `json:"abbreviation"`  
11 - // 公司logo  
12 - Logo string `json:"logo"`  
13 - // 公司联系电话  
14 - Phone string `json:"phone"`  
15 - // 状态 1正常 2禁用  
16 - Status int64 `json:"status"`  
17 - // 备注  
18 - Remarks string `json:"remarks"`  
19 - // 是否有效【1:有效】【2:无效】  
20 - Enable int64 `json:"enable"`  
21 - // 公司主管理员  
22 - Admin *UserInfo `json:"admin"` 5 + Name string `json:"name"` // 公司名称
  6 + Abbreviation string `json:"abbreviation"` // 公司简称
  7 + Logo string `json:"logo"` // 公司logo
  8 + Phone string `json:"phone"` // 公司联系电话
  9 + Status int64 `json:"status"` // 状态 1正常 2禁用
  10 + Remarks string `json:"remarks"` // 备注
  11 + Enable int64 `json:"enable"` // 是否有效【1:有效】【2:无效】
  12 + Admin *CompanyAdmin `json:"admin"` // 公司主管理员
  13 +}
  14 +
  15 +// 公司管理员信息值对象
  16 +type CompanyAdmin struct {
  17 + UserAccount string `json:"userPhone"` // 用户手机号
  18 + UserName string `json:"userName"` // 用户名称
23 } 19 }
@@ -6,7 +6,7 @@ import ( @@ -6,7 +6,7 @@ import (
6 ) 6 )
7 7
8 type Company struct { 8 type Company struct {
9 - tableName string `pg:"companys,alias:company"` 9 + tableName string `pg:"companies,alias:company"`
10 // 公司Id 10 // 公司Id
11 CompanyId int64 `pg:",pk"` 11 CompanyId int64 `pg:",pk"`
12 // 公司信息 12 // 公司信息
@@ -16,5 +16,5 @@ type Company struct { @@ -16,5 +16,5 @@ type Company struct {
16 // 更新时间 16 // 更新时间
17 UpdateAt time.Time 17 UpdateAt time.Time
18 // 删除时间 18 // 删除时间
19 - DeleteAt time.Time 19 + DeleteAt time.Time `pg:",soft_delete"`
20 } 20 }
@@ -30,7 +30,6 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp @@ -30,7 +30,6 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp
30 "company_info", 30 "company_info",
31 "create_at", 31 "create_at",
32 "update_at", 32 "update_at",
33 - "delete_at",  
34 } 33 }
35 insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) 34 insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields)
36 insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) 35 insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields)
@@ -53,7 +52,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp @@ -53,7 +52,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp
53 &company.UpdateAt, 52 &company.UpdateAt,
54 &company.DeleteAt, 53 &company.DeleteAt,
55 ), 54 ),
56 - fmt.Sprintf("INSERT INTO companys (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), 55 +
  56 + fmt.Sprintf("INSERT INTO companies (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet),
  57 +
57 company.CompanyId, 58 company.CompanyId,
58 company.CompanyInfo, 59 company.CompanyInfo,
59 company.CreateAt, 60 company.CreateAt,
@@ -71,8 +72,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp @@ -71,8 +72,9 @@ func (repository *CompanyRepository) Save(company *domain.Company) (*domain.Comp
71 &company.UpdateAt, 72 &company.UpdateAt,
72 &company.DeleteAt, 73 &company.DeleteAt,
73 ), 74 ),
74 - fmt.Sprintf("UPDATE companys SET %s WHERE company_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet),  
75 - company.CompanyId, 75 +
  76 + fmt.Sprintf("UPDATE companies SET %s WHERE company_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet),
  77 +
76 company.CompanyInfo, 78 company.CompanyInfo,
77 company.CreateAt, 79 company.CreateAt,
78 company.UpdateAt, 80 company.UpdateAt,
@@ -115,21 +117,23 @@ func (repository *CompanyRepository) FindOne(queryOptions map[string]interface{} @@ -115,21 +117,23 @@ func (repository *CompanyRepository) FindOne(queryOptions map[string]interface{}
115 func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Company, error) { 117 func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Company, error) {
116 tx := repository.transactionContext.PgTx 118 tx := repository.transactionContext.PgTx
117 var companyModels []*models.Company 119 var companyModels []*models.Company
118 - companys := make([]*domain.Company, 0) 120 +
  121 + companies := make([]*domain.Company, 0)
  122 +
119 query := sqlbuilder.BuildQuery(tx.Model(&companyModels), queryOptions) 123 query := sqlbuilder.BuildQuery(tx.Model(&companyModels), queryOptions)
120 query.SetOffsetAndLimit(20) 124 query.SetOffsetAndLimit(20)
121 query.SetOrderDirect("company_id", "DESC") 125 query.SetOrderDirect("company_id", "DESC")
122 if count, err := query.SelectAndCount(); err != nil { 126 if count, err := query.SelectAndCount(); err != nil {
123 - return 0, companys, err 127 + return 0, companies, err
124 } else { 128 } else {
125 for _, companyModel := range companyModels { 129 for _, companyModel := range companyModels {
126 if company, err := transform.TransformToCompanyDomainModelFromPgModels(companyModel); err != nil { 130 if company, err := transform.TransformToCompanyDomainModelFromPgModels(companyModel); err != nil {
127 - return 0, companys, err 131 + return 0, companies, err
128 } else { 132 } else {
129 - companys = append(companys, company) 133 + companies = append(companies, company)
130 } 134 }
131 } 135 }
132 - return int64(count), companys, nil 136 + return int64(count), companies, nil
133 } 137 }
134 } 138 }
135 func NewCompanyRepository(transactionContext *pgTransaction.TransactionContext) (*CompanyRepository, error) { 139 func NewCompanyRepository(transactionContext *pgTransaction.TransactionContext) (*CompanyRepository, error) {
  1 +package controllers
  2 +
  3 +import (
  4 + "github.com/linmadan/egglib-go/web/beego"
  5 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/command"
  6 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/query"
  7 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/company/service"
  8 +)
  9 +
  10 +type CompanyController struct {
  11 + beego.BaseController
  12 +}
  13 +
  14 +func (controller *CompanyController) CreateCompany() {
  15 + companyService := service.NewCompanyService(nil)
  16 + createCompanyCommand := &command.CreateCompanyCommand{}
  17 + controller.Unmarshal(createCompanyCommand)
  18 + data, err := companyService.CreateCompany(createCompanyCommand)
  19 + controller.Response(data, err)
  20 +}
  21 +
  22 +func (controller *CompanyController) UpdateCompany() {
  23 + companyService := service.NewCompanyService(nil)
  24 + updateCompanyCommand := &command.UpdateCompanyCommand{}
  25 + controller.Unmarshal(updateCompanyCommand)
  26 + companyId, _ := controller.GetInt64(":companyId")
  27 + updateCompanyCommand.CompanyId = companyId
  28 + data, err := companyService.UpdateCompany(updateCompanyCommand)
  29 + controller.Response(data, err)
  30 +}
  31 +
  32 +func (controller *CompanyController) GetCompany() {
  33 + companyService := service.NewCompanyService(nil)
  34 + getCompanyQuery := &query.GetCompanyQuery{}
  35 + companyId, _ := controller.GetInt64(":companyId")
  36 + getCompanyQuery.CompanyId = companyId
  37 + data, err := companyService.GetCompany(getCompanyQuery)
  38 + controller.Response(data, err)
  39 +}
  40 +
  41 +func (controller *CompanyController) RemoveCompany() {
  42 + companyService := service.NewCompanyService(nil)
  43 + removeCompanyCommand := &command.RemoveCompanyCommand{}
  44 + controller.Unmarshal(removeCompanyCommand)
  45 + companyId, _ := controller.GetInt64(":companyId")
  46 + removeCompanyCommand.CompanyId = companyId
  47 + data, err := companyService.RemoveCompany(removeCompanyCommand)
  48 + controller.Response(data, err)
  49 +}
  50 +
  51 +func (controller *CompanyController) ListCompany() {
  52 + companyService := service.NewCompanyService(nil)
  53 + listCompanyQuery := &query.ListCompanyQuery{}
  54 + offset, _ := controller.GetInt("offset")
  55 + listCompanyQuery.Offset = offset
  56 + limit, _ := controller.GetInt("limit")
  57 + listCompanyQuery.Limit = limit
  58 + data, err := companyService.ListCompany(listCompanyQuery)
  59 + controller.Response(data, err)
  60 +}
  61 +
  62 +func (controller *CompanyController) ConvertCompanyStatus() {
  63 + companyService := service.NewCompanyService(nil)
  64 + convertCompanyStatusCommand := &command.ConvertCompanyStatusCommand{}
  65 + controller.Unmarshal(convertCompanyStatusCommand)
  66 + data, err := companyService.ConvertCompanyStatus(convertCompanyStatusCommand)
  67 + controller.Response(data, err)
  68 +}
  69 +
  70 +func (controller *CompanyController) SetCompanyAdmin() {
  71 + companyService := service.NewCompanyService(nil)
  72 + setCompanyAdminCommand := &command.SetCompanyAdminCommand{}
  73 + controller.Unmarshal(setCompanyAdminCommand)
  74 + data, err := companyService.SetCompanyAdmin(setCompanyAdminCommand)
  75 + controller.Response(data, err)
  76 +}
  1 +package routers
  2 +
  3 +import (
  4 + "github.com/beego/beego/v2/server/web"
  5 + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/port/beego/controllers"
  6 +)
  7 +
  8 +func init() {
  9 + web.Router("/companies/", &controllers.CompanyController{}, "Post:CreateCompany")
  10 + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Put:UpdateCompany")
  11 + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Get:GetCompany")
  12 + web.Router("/companies/:companyId", &controllers.CompanyController{}, "Delete:RemoveCompany")
  13 + web.Router("/companies/", &controllers.CompanyController{}, "Get:ListCompany")
  14 + web.Router("/companies/convertCompanyStatus", &controllers.CompanyController{}, "Post:ConvertCompanyStatus")
  15 + web.Router("/companies/setCompanyAdmin", &controllers.CompanyController{}, "Post:SetCompanyAdmin")
  16 +}
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 + "net/http/httptest"
  6 + "testing"
  7 +
  8 + "github.com/beego/beego/v2/server/web"
  9 + . "github.com/onsi/ginkgo"
  10 + . "github.com/onsi/gomega"
  11 + _ "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  12 + _ "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/port/beego"
  13 +)
  14 +
  15 +func TestCompany(t *testing.T) {
  16 + RegisterFailHandler(Fail)
  17 + RunSpecs(t, "Beego Port Company Correlations Test Case Suite")
  18 +}
  19 +
  20 +var handler http.Handler
  21 +var server *httptest.Server
  22 +
  23 +var _ = BeforeSuite(func() {
  24 + handler = web.BeeApp.Handlers
  25 + server = httptest.NewServer(handler)
  26 +})
  27 +
  28 +var _ = AfterSuite(func() {
  29 + server.Close()
  30 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("公司状态转换 禁用、启用", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("公司状态转换 禁用、启用", func() {
  22 + Context("", func() {
  23 + It("", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + body := map[string]interface{}{
  26 + "companyId": "int64",
  27 + "status": "int64",
  28 + }
  29 + httpExpect.POST("/companys/convertCompanyStatus").
  30 + WithJSON(body).
  31 + Expect().
  32 + Status(http.StatusOK).
  33 + JSON().
  34 + Object().
  35 + ContainsKey("code").ValueEqual("code", 0).
  36 + ContainsKey("msg").ValueEqual("msg", "ok").
  37 + ContainsKey("data").Value("data").Object()
  38 + })
  39 + })
  40 + })
  41 + AfterEach(func() {
  42 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  43 + Expect(err).NotTo(HaveOccurred())
  44 + })
  45 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("创建", func() {
  13 + Describe("提交数据创建", func() {
  14 + Context("提交正确的新公司信息数据", func() {
  15 + It("返回公司信息数据", func() {
  16 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  17 + body := map[string]interface{}{
  18 + "name": "string",
  19 + "abbreviation": "string",
  20 + "status": "int64",
  21 + "remarks": "string",
  22 + "userAccount": "string",
  23 + "userName": "string",
  24 + }
  25 + httpExpect.POST("/companys/").
  26 + WithJSON(body).
  27 + Expect().
  28 + Status(http.StatusOK).
  29 + JSON().
  30 + Object().
  31 + ContainsKey("code").ValueEqual("code", 0).
  32 + ContainsKey("msg").ValueEqual("msg", "ok").
  33 + ContainsKey("data").Value("data").Object().
  34 + ContainsKey("companyId").ValueNotEqual("companyId", BeZero())
  35 + })
  36 + })
  37 + })
  38 + AfterEach(func() {
  39 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  40 + Expect(err).NotTo(HaveOccurred())
  41 + })
  42 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("返回", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("根据companyId参数返回公司信息", func() {
  22 + Context("传入有效的companyId", func() {
  23 + It("返回公司信息数据", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + httpExpect.GET("/companys/{companyId}").
  26 + Expect().
  27 + Status(http.StatusOK).
  28 + JSON().
  29 + Object().
  30 + ContainsKey("code").ValueEqual("code", 0).
  31 + ContainsKey("msg").ValueEqual("msg", "ok").
  32 + ContainsKey("data").Value("data").Object()
  33 + })
  34 + })
  35 + })
  36 + AfterEach(func() {
  37 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  38 + Expect(err).NotTo(HaveOccurred())
  39 + })
  40 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("返回列表", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("根据参数返回公司信息列表", func() {
  22 + Context("传入有效的参数", func() {
  23 + It("返回公司信息数据列表", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + httpExpect.GET("/companys/").
  26 + WithQuery("offset", "int").
  27 + WithQuery("limit", "int").
  28 + Expect().
  29 + Status(http.StatusOK).
  30 + JSON().
  31 + Object().
  32 + ContainsKey("code").ValueEqual("code", 0).
  33 + ContainsKey("msg").ValueEqual("msg", "ok").
  34 + ContainsKey("data").Value("data").Object().
  35 + ContainsKey("count").ValueEqual("count", 1).
  36 + ContainsKey("companys").Value("companys").Array()
  37 + })
  38 + })
  39 + })
  40 + AfterEach(func() {
  41 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  42 + Expect(err).NotTo(HaveOccurred())
  43 + })
  44 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("移除", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("根据参数移除", func() {
  22 + Context("传入有效的companyId", func() {
  23 + It("返回被移除公司信息的数据", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + httpExpect.DELETE("/companys/{companyId}").
  26 + Expect().
  27 + Status(http.StatusOK).
  28 + JSON().
  29 + Object().
  30 + ContainsKey("code").ValueEqual("code", 0).
  31 + ContainsKey("msg").ValueEqual("msg", "ok").
  32 + ContainsKey("data").Value("data").Object()
  33 + })
  34 + })
  35 + })
  36 + AfterEach(func() {
  37 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  38 + Expect(err).NotTo(HaveOccurred())
  39 + })
  40 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("设置公司管理员", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("设置公司管理员", func() {
  22 + Context("", func() {
  23 + It("", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + body := map[string]interface{}{
  26 + "companyId": "int64",
  27 + "userAccount": "string",
  28 + "userName": "string",
  29 + }
  30 + httpExpect.POST("/companys/setCompanyAdmin").
  31 + WithJSON(body).
  32 + Expect().
  33 + Status(http.StatusOK).
  34 + JSON().
  35 + Object().
  36 + ContainsKey("code").ValueEqual("code", 0).
  37 + ContainsKey("msg").ValueEqual("msg", "ok").
  38 + ContainsKey("data").Value("data").Object()
  39 + })
  40 + })
  41 + })
  42 + AfterEach(func() {
  43 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  44 + Expect(err).NotTo(HaveOccurred())
  45 + })
  46 +})
  1 +package company
  2 +
  3 +import (
  4 + "net/http"
  5 +
  6 + "github.com/gavv/httpexpect"
  7 + . "github.com/onsi/ginkgo"
  8 + . "github.com/onsi/gomega"
  9 + pG "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/pg"
  10 +)
  11 +
  12 +var _ = Describe("更新", func() {
  13 + var companyId int64
  14 + BeforeEach(func() {
  15 + _, err := pG.DB.QueryOne(
  16 + pg.Scan(&companyId),
  17 + "INSERT INTO companys (company_id, company_info, create_at, update_at, delete_at) VALUES (?, ?, ?, ?, ?) RETURNING company_id",
  18 + "testCompanyId", "testCompanyInfo", "testCreateAt", "testUpdateAt", "testDeleteAt")
  19 + Expect(err).NotTo(HaveOccurred())
  20 + })
  21 + Describe("提交数据更新", func() {
  22 + Context("提交正确的公司信息数据", func() {
  23 + It("返回更新后的公司信息数据", func() {
  24 + httpExpect := httpexpect.New(GinkgoT(), server.URL)
  25 + body := map[string]interface{}{
  26 + "name": "string",
  27 + "abbreviation": "string",
  28 + "status": "int64",
  29 + "remarks": "string",
  30 + "userAccount": "string",
  31 + "userName": "string",
  32 + }
  33 + httpExpect.PUT("/companys/{companyId}").
  34 + WithJSON(body).
  35 + Expect().
  36 + Status(http.StatusOK).
  37 + JSON().
  38 + Object().
  39 + ContainsKey("code").ValueEqual("code", 0).
  40 + ContainsKey("msg").ValueEqual("msg", "ok").
  41 + ContainsKey("data").Value("data").Object().
  42 + ContainsKey("companyId").ValueEqual("companyId", companyId)
  43 + })
  44 + })
  45 + })
  46 + AfterEach(func() {
  47 + _, err := pG.DB.Exec("DELETE FROM companys WHERE true")
  48 + Expect(err).NotTo(HaveOccurred())
  49 + })
  50 +})