|
|
package company
|
|
|
|
|
|
import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/linmadan/egglib-go/core/application"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/company/command"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
|
|
|
)
|
|
|
|
|
|
type CompanyServices struct {
|
|
|
}
|
|
|
|
|
|
//从BusinessAdmins 接收消息,变更公司数据
|
|
|
//
|
|
|
func (c CompanyServices) BusinessAdminCompany() error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
func (c CompanyServices) AddCompany() error {
|
|
|
return nil
|
|
|
}
|
|
|
//addCompany
|
|
|
//从BusinessAdmins 接收消息 添加公司
|
|
|
func (c CompanyServices) addCompany(param *command.SaveCompanyCommand) error {
|
|
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
|
|
if err != nil {
|
|
|
return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
if err := transactionContext.StartTransaction(); err != nil {
|
|
|
return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
defer func() {
|
|
|
_ = transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
nowTime := time.Now()
|
|
|
newCompany := domain.Company{
|
|
|
Id: param.Comapany.Id,
|
|
|
Logo: param.Comapany.Logo,
|
|
|
Name: param.Comapany.Name,
|
|
|
Status: param.Comapany.Status,
|
|
|
UpdateAt: nowTime,
|
|
|
CreateAt: nowTime,
|
|
|
DeleteAt: nil,
|
|
|
}
|
|
|
|
|
|
func (c CompanyServices) EditCompany() error {
|
|
|
newUser := domain.User{
|
|
|
Id: param.User.Id,
|
|
|
Account: param.User.Phone,
|
|
|
AvatarUrl: param.User.Avatar,
|
|
|
CompanyId: param.User.CompanyId,
|
|
|
AdminType: param.User.AdminType,
|
|
|
Name: param.User.Name,
|
|
|
Status: param.User.Status,
|
|
|
UpdateAt: nowTime,
|
|
|
DeleteAt: nil,
|
|
|
CreateAt: nowTime,
|
|
|
}
|
|
|
companyRepo := factory.CreateCompanyRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
userRepo := factory.CreateUserRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
_, err = companyRepo.Insert(&newCompany)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
_, err = userRepo.Insert(&newUser)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
func (c CompanyServices) ChangeAdmin() error {
|
|
|
return nil
|
|
|
}
|
|
|
//editCompany
|
|
|
//从BusinessAdmins 接收消息 更新公司
|
|
|
func (c CompanyServices) editCompany(param *command.SaveCompanyCommand) error {
|
|
|
transactionContext, err := factory.CreateTransactionContext(nil)
|
|
|
if err != nil {
|
|
|
return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
if err := transactionContext.StartTransaction(); err != nil {
|
|
|
return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
|
}
|
|
|
defer func() {
|
|
|
_ = transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
companyRepo := factory.CreateCompanyRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
userRepo := factory.CreateUserRepository(map[string]interface{}{
|
|
|
"transactionContext": transactionContext,
|
|
|
})
|
|
|
|
|
|
_, companyList, err := companyRepo.Find(map[string]interface{}{
|
|
|
"limit": 1,
|
|
|
"id": param.Comapany.Id,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
_, userList, err := userRepo.Find(map[string]interface{}{
|
|
|
"limit": 1,
|
|
|
"id": param.User.Id,
|
|
|
})
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
var (
|
|
|
newCompany *domain.Company
|
|
|
newUser *domain.User
|
|
|
)
|
|
|
nowTime := time.Now()
|
|
|
if len(companyList) > 0 {
|
|
|
newCompany = companyList[0]
|
|
|
} else {
|
|
|
newCompany = &domain.Company{
|
|
|
CreateAt: nowTime,
|
|
|
}
|
|
|
}
|
|
|
if len(userList) > 0 {
|
|
|
newUser = userList[0]
|
|
|
} else {
|
|
|
newUser = &domain.User{
|
|
|
CreateAt: nowTime,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
newCompany.Id = param.Comapany.Id
|
|
|
newCompany.Logo = param.Comapany.Logo
|
|
|
newCompany.Name = param.Comapany.Name
|
|
|
newCompany.Status = param.Comapany.Status
|
|
|
newCompany.UpdateAt = nowTime
|
|
|
|
|
|
func (c CompanyServices) SetCompanyCharge() error {
|
|
|
newUser.Id = param.User.Id
|
|
|
newUser.Account = param.User.Phone
|
|
|
newUser.AvatarUrl = param.User.Avatar
|
|
|
newUser.CompanyId = param.User.CompanyId
|
|
|
newUser.AdminType = param.User.AdminType
|
|
|
newUser.Name = param.User.Name
|
|
|
newUser.Status = param.User.Status
|
|
|
newUser.UpdateAt = nowTime
|
|
|
if len(companyList) > 0 {
|
|
|
_, err = companyRepo.Update(newCompany)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
} else {
|
|
|
_, err = companyRepo.Insert(newCompany)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
if len(userList) > 0 {
|
|
|
_, err = userRepo.Update(newUser)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
} else {
|
|
|
_, err = userRepo.Insert(newUser)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
return nil
|
|
|
} |
...
|
...
|
|