作者 王健

新增【公司应用服务】

  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 + if err := transactionContext.CommitTransaction(); err != nil {
  106 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  107 + }
  108 + return company, nil
  109 + }
  110 +}
  111 +
  112 +// 返回
  113 +func (companyService *CompanyService) GetCompany(getCompanyQuery *query.GetCompanyQuery) (interface{}, error) {
  114 + if err := getCompanyQuery.ValidateQuery(); err != nil {
  115 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  116 + }
  117 + transactionContext, err := factory.CreateTransactionContext(nil)
  118 + if err != nil {
  119 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  120 + }
  121 + if err := transactionContext.StartTransaction(); err != nil {
  122 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  123 + }
  124 + defer func() {
  125 + transactionContext.RollbackTransaction()
  126 + }()
  127 + var companyRepository domain.CompanyRepository
  128 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  129 + "transactionContext": transactionContext,
  130 + }); err != nil {
  131 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  132 + } else {
  133 + companyRepository = value
  134 + }
  135 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": getCompanyQuery.CompanyId})
  136 + if err != nil {
  137 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  138 + }
  139 + if company == nil {
  140 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getCompanyQuery.CompanyId)))
  141 + } else {
  142 + if err := transactionContext.CommitTransaction(); err != nil {
  143 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  144 + }
  145 + return company, nil
  146 + }
  147 +}
  148 +
  149 +// 返回列表
  150 +func (companyService *CompanyService) ListCompany(listCompanyQuery *query.ListCompanyQuery) (interface{}, error) {
  151 + if err := listCompanyQuery.ValidateQuery(); err != nil {
  152 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  153 + }
  154 + transactionContext, err := factory.CreateTransactionContext(nil)
  155 + if err != nil {
  156 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  157 + }
  158 + if err := transactionContext.StartTransaction(); err != nil {
  159 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  160 + }
  161 + defer func() {
  162 + transactionContext.RollbackTransaction()
  163 + }()
  164 + var companyRepository domain.CompanyRepository
  165 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  166 + "transactionContext": transactionContext,
  167 + }); err != nil {
  168 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  169 + } else {
  170 + companyRepository = value
  171 + }
  172 + if count, companies, err := companyRepository.Find(tool_funs.SimpleStructToMap(listCompanyQuery)); err != nil {
  173 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  174 + } else {
  175 + if err := transactionContext.CommitTransaction(); err != nil {
  176 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  177 + }
  178 + return map[string]interface{}{
  179 + "count": count,
  180 + "companies": companies,
  181 + }, nil
  182 + }
  183 +}
  184 +
  185 +// 移除
  186 +func (companyService *CompanyService) RemoveCompany(removeCompanyCommand *command.RemoveCompanyCommand) (interface{}, error) {
  187 + if err := removeCompanyCommand.ValidateCommand(); err != nil {
  188 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  189 + }
  190 + transactionContext, err := factory.CreateTransactionContext(nil)
  191 + if err != nil {
  192 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  193 + }
  194 + if err := transactionContext.StartTransaction(); err != nil {
  195 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  196 + }
  197 + defer func() {
  198 + transactionContext.RollbackTransaction()
  199 + }()
  200 + var companyRepository domain.CompanyRepository
  201 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  202 + "transactionContext": transactionContext,
  203 + }); err != nil {
  204 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  205 + } else {
  206 + companyRepository = value
  207 + }
  208 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": removeCompanyCommand.CompanyId})
  209 + if err != nil {
  210 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  211 + }
  212 + if company == nil {
  213 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeCompanyCommand.CompanyId)))
  214 + }
  215 + if company, err := companyRepository.Remove(company); err != nil {
  216 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  217 + } else {
  218 + if err := transactionContext.CommitTransaction(); err != nil {
  219 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  220 + }
  221 + return company, nil
  222 + }
  223 +}
  224 +
  225 +// 设置公司管理员
  226 +func (companyService *CompanyService) SetCompanyAdmin(setCompanyAdminCommand *command.SetCompanyAdminCommand) (interface{}, error) {
  227 + if err := setCompanyAdminCommand.ValidateCommand(); err != nil {
  228 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  229 + }
  230 + transactionContext, err := factory.CreateTransactionContext(nil)
  231 + if err != nil {
  232 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  233 + }
  234 + if err := transactionContext.StartTransaction(); err != nil {
  235 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  236 + }
  237 + defer func() {
  238 + transactionContext.RollbackTransaction()
  239 + }()
  240 + var companyRepository domain.CompanyRepository
  241 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  242 + "transactionContext": transactionContext,
  243 + }); err != nil {
  244 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  245 + } else {
  246 + companyRepository = value
  247 + }
  248 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": setCompanyAdminCommand.CompanyId})
  249 + if err != nil {
  250 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  251 + }
  252 + if company == nil {
  253 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(setCompanyAdminCommand.CompanyId)))
  254 + }
  255 +
  256 + newCompanyAdmin := &domain.CompanyAdmin{
  257 + UserAccount: setCompanyAdminCommand.UserAccount, // 用户手机号
  258 + UserName: setCompanyAdminCommand.UserName, // 用户名称
  259 + }
  260 + // 更改公司管理员信息
  261 + if err := company.SetCompanyAdmin(newCompanyAdmin); err != nil {
  262 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  263 + }
  264 +
  265 + if company, err := companyRepository.Save(company); err != nil {
  266 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  267 + } else {
  268 + if err := transactionContext.CommitTransaction(); err != nil {
  269 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  270 + }
  271 + return company, nil
  272 + }
  273 +}
  274 +
  275 +// 更新
  276 +func (companyService *CompanyService) UpdateCompany(updateCompanyCommand *command.UpdateCompanyCommand) (interface{}, error) {
  277 + if err := updateCompanyCommand.ValidateCommand(); err != nil {
  278 + return nil, application.ThrowError(application.ARG_ERROR, err.Error())
  279 + }
  280 + transactionContext, err := factory.CreateTransactionContext(nil)
  281 + if err != nil {
  282 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  283 + }
  284 + if err := transactionContext.StartTransaction(); err != nil {
  285 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  286 + }
  287 + defer func() {
  288 + transactionContext.RollbackTransaction()
  289 + }()
  290 + var companyRepository domain.CompanyRepository
  291 + if value, err := factory.CreateCompanyRepository(map[string]interface{}{
  292 + "transactionContext": transactionContext,
  293 + }); err != nil {
  294 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  295 + } else {
  296 + companyRepository = value
  297 + }
  298 + company, err := companyRepository.FindOne(map[string]interface{}{"companyId": updateCompanyCommand.CompanyId})
  299 + if err != nil {
  300 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  301 + }
  302 + if company == nil {
  303 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateCompanyCommand.CompanyId)))
  304 + }
  305 + if err := company.Update(tool_funs.SimpleStructToMap(updateCompanyCommand)); err != nil {
  306 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  307 + }
  308 +
  309 + // 更改公司管理员信息
  310 + if updateCompanyCommand.UserAccount != "" || updateCompanyCommand.UserName != "" {
  311 + companyAdmin := company.CompanyInfo.Admin
  312 + if updateCompanyCommand.UserAccount != "" {
  313 + companyAdmin.UserAccount = updateCompanyCommand.UserAccount // 用户手机号
  314 + }
  315 + if updateCompanyCommand.UserName != "" {
  316 + companyAdmin.UserName = updateCompanyCommand.UserName // 用户名称
  317 + }
  318 + if err := company.SetCompanyAdmin(companyAdmin); err != nil {
  319 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  320 + }
  321 + }
  322 +
  323 + if company, err := companyRepository.Save(company); err != nil {
  324 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  325 + } else {
  326 + if err := transactionContext.CommitTransaction(); err != nil {
  327 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  328 + }
  329 + return company, nil
  330 + }
  331 +}
  332 +
  333 +func NewCompanyService(options map[string]interface{}) *CompanyService {
  334 + newCompanyService := &CompanyService{}
  335 + return newCompanyService
  336 +}
@@ -58,5 +58,28 @@ func (company *Company) Update(data map[string]interface{}) error { @@ -58,5 +58,28 @@ func (company *Company) Update(data map[string]interface{}) error {
58 if enable, ok := data["enable"]; ok { 58 if enable, ok := data["enable"]; ok {
59 company.CompanyInfo.Enable = enable.(int64) 59 company.CompanyInfo.Enable = enable.(int64)
60 } 60 }
  61 + if userAccount, ok := data["userAccount"]; ok {
  62 + company.CompanyInfo.Admin.UserAccount = userAccount.(string)
  63 + }
  64 + if userName, ok := data["userName"]; ok {
  65 + company.CompanyInfo.Admin.UserName = userName.(string)
  66 + }
  67 +
  68 + if createAt, ok := data["createAt"]; ok {
  69 + company.CreateAt = createAt.(time.Time)
  70 + }
  71 + if updateAt, ok := data["updateAt"]; ok {
  72 + company.UpdateAt = updateAt.(time.Time)
  73 + }
  74 + if deleteAt, ok := data["deleteAt"]; ok {
  75 + company.DeleteAt = deleteAt.(time.Time)
  76 + }
  77 +
  78 + return nil
  79 +}
  80 +
  81 +// 更改公司管理员信息
  82 +func (company *Company) SetCompanyAdmin(admin *CompanyAdmin) error {
  83 + company.CompanyInfo.Admin = admin
61 return nil 84 return nil
62 } 85 }
@@ -2,13 +2,19 @@ package domain @@ -2,13 +2,19 @@ package domain
2 2
3 // 公司信息 3 // 公司信息
4 type CompanyInfo struct { 4 type CompanyInfo struct {
5 - CompanyId int64 `json:"companyId"` // 公司Id  
6 - Name string `json:"name"` // 公司名称  
7 - Abbreviation string `json:"abbreviation"` // 公司简称  
8 - Logo string `json:"logo"` // 公司logo  
9 - Phone string `json:"phone"` // 公司联系电话  
10 - Status int64 `json:"status"` // 状态 1正常 2禁用  
11 - Remarks string `json:"remarks"` // 备注  
12 - Enable int64 `json:"enable"` // 是否有效【1:有效】【2:无效】  
13 - Admin UserInfo `json:"admin"` // 公司主管理员 5 + CompanyId int64 `json:"companyId"` // 公司Id
  6 + Name string `json:"name"` // 公司名称
  7 + Abbreviation string `json:"abbreviation"` // 公司简称
  8 + Logo string `json:"logo"` // 公司logo
  9 + Phone string `json:"phone"` // 公司联系电话
  10 + Status int64 `json:"status"` // 状态 1正常 2禁用
  11 + Remarks string `json:"remarks"` // 备注
  12 + Enable int64 `json:"enable"` // 是否有效【1:有效】【2:无效】
  13 + Admin *CompanyAdmin `json:"admin"` // 公司主管理员
  14 +}
  15 +
  16 +// 公司管理员信息值对象
  17 +type CompanyAdmin struct {
  18 + UserAccount string `json:"userPhone"` // 用户手机号
  19 + UserName string `json:"userName"` // 用户名称
14 } 20 }