作者 陈志颖

feat:完善共创模式增删查改功能

... ... @@ -14,15 +14,15 @@ type CreateCooperationModeCommand struct {
// 共创模式编码,手动输入,唯一确定
CooperationModeNumber string `cname:"共创模式编码,手动输入,唯一确定" json:"cooperationModeNumber" valid:"Required"`
// 备注
Remarks string `cname:"备注" json:"remarks" valid:"Required"`
Remarks string `cname:"备注" json:"remarks,omitempty"`
// 公司ID,通过集成REST上下文获取
CompanyId int64 `cname:"公司ID,通过集成REST上下文获取" json:"companyId,string" valid:"Required"`
CompanyId int64 `cname:"公司ID" json:"companyId,string" valid:"Required"`
// 组织机构ID
OrgId int64 `cname:"组织机构ID" json:"orgId,string" valid:"Required"`
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
UserId int64 `cname:"用户ID" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string"`
}
func (createCooperationModeCommand *CreateCooperationModeCommand) Valid(validation *validation.Validation) {
... ...
... ... @@ -18,7 +18,7 @@ type RemoveCooperationModeCommand struct {
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string"`
}
func (removeCooperationModeCommand *RemoveCooperationModeCommand) Valid(validation *validation.Validation) {
... ...
... ... @@ -10,21 +10,21 @@ import (
type UpdateCooperationModeCommand struct {
// 共创模式ID
CooperationModeId string `cname:"共创模式id" json:"cooperationModeId" valid:"Required"`
CooperationModeId int64 `cname:"共创模式id" json:"cooperationModeId" valid:"Required"`
// 共创模式名称
CooperationModeName string `cname:"共创模式名称" json:"cooperationModeName" valid:"Required"`
// 共创模式编码,手动输入,唯一确定
CooperationModeNumber string `cname:"共创模式编码,手动输入,唯一确定" json:"cooperationModeNumber" valid:"Required"`
// 备注
Remarks string `cname:"备注" json:"remarks" valid:"Required"`
Remarks string `cname:"备注" json:"remarks,omitempty"`
// 共创模式状态,1启用,2禁用
Status int32 `cname:"状态" json:"status" valid:"Required"`
// 公司ID,通过集成REST上下文获取
CompanyId int64 `cname:"公司ID,通过集成REST上下文获取" json:"companyId,string" valid:"Required"`
CompanyId int64 `cname:"公司ID" json:"companyId,string" valid:"Required"`
// 组织机构ID
OrgId int64 `cname:"组织机构ID" json:"orgId,string" valid:"Required"`
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
UserId int64 `cname:"用户ID" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string"`
}
func (updateCooperationModeCommand *UpdateCooperationModeCommand) Valid(validation *validation.Validation) {
... ...
... ... @@ -16,9 +16,9 @@ type GetCooperationModeQuery struct {
// 组织机构ID
OrgId int64 `cname:"组织机构ID" json:"orgId,string" valid:"Required"`
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
UserId int64 `cname:"用户ID" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string"`
}
func (getCooperationModeQuery *GetCooperationModeQuery) Valid(validation *validation.Validation) {
... ...
... ... @@ -18,9 +18,9 @@ type ListCooperationModeQuery struct {
// 组织机构ID
OrgId int64 `cname:"组织机构ID" json:"orgId,string" valid:"Required"`
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
UserId int64 `cname:"用户ID" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string"`
}
func (listCooperationModeQuery *ListCooperationModeQuery) Valid(validation *validation.Validation) {
... ...
... ... @@ -10,21 +10,21 @@ import (
type SearchCooperationModeQuery struct {
// 页面大小
PageNumber int64 `cname:"页面大小" json:"pageNumber" valid:"Required"`
PageNumber int64 `cname:"页面大小" json:"pageNumber,omitempty"`
// 页面大小
PageSize int64 `cname:"页面大小" json:"pageSize" valid:"Required"`
PageSize int64 `cname:"页面大小" json:"pageSize,omitempty"`
// 共创模式名称
CooperationModeName string `cname:"共创模式名称" json:"cooperationModeName" valid:"Required"`
// 组织机构名称
OrganizationName string `cname:"组织机构名称" json:"organizationName,omitempty"`
// 公司ID,通过集成REST上下文获取
CompanyId int64 `cname:"公司ID,通过集成REST上下文获取" json:"companyId,string" valid:"Required"`
CompanyId int64 `cname:"公司ID" json:"companyId,string" valid:"Required"`
// 组织机构ID
OrgId int64 `cname:"组织机构ID" json:"orgId,string" valid:"Required"`
// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
UserId int64 `cname:"用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员" json:"userId,string" valid:"Required"`
UserId int64 `cname:"用户ID" json:"userId,string" valid:"Required"`
// 用户基础数据id
UserBaseId int64 `cname:"用户基础数据is" json:"userBaseId,string" valid:"Required"`
UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId,string"`
}
func (searchCooperationModeQuery *SearchCooperationModeQuery) Valid(validation *validation.Validation) {
... ...
... ... @@ -81,6 +81,10 @@ func (cooperationModeService *CooperationModeService) CreateCooperationMode(crea
organization = data
}
//TODO 校验共创模式编码唯一性
//TODO 校验共创模式名称唯一性
newCooperationMode := &domain.CooperationMode{
CooperationModeName: createCooperationModeCommand.CooperationModeName,
CooperationModeNumber: createCooperationModeCommand.CooperationModeNumber,
... ... @@ -93,6 +97,7 @@ func (cooperationModeService *CooperationModeService) CreateCooperationMode(crea
DeletedAt: time.Time{},
CreatedAt: time.Now(),
}
var cooperationModeRepository domain.CooperationModeRepository
if value, err := factory.CreateCooperationModeRepository(map[string]interface{}{
"transactionContext": transactionContext,
... ...
... ... @@ -60,12 +60,6 @@ func (cooperationContractRelevant *CooperationContractRelevant) Update(data map[
if companyName, ok := data["companyName"]; ok {
cooperationContractRelevant.Relevant.Org.Company.CompanyName = companyName.(string)
}
if roleId, ok := data["roleId"]; ok {
cooperationContractRelevant.Relevant.Roles.RoleId = roleId.(int64)
}
if roleName, ok := data["roleName"]; ok {
cooperationContractRelevant.Relevant.Roles.RoleName = roleName.(string)
}
if userAvatar, ok := data["userAvatar"]; ok {
cooperationContractRelevant.Relevant.UserInfo.UserAvatar = userAvatar.(string)
}
... ...
... ... @@ -45,9 +45,6 @@ func (cooperationMode *CooperationMode) Identify() interface{} {
}
func (cooperationMode *CooperationMode) Update(data map[string]interface{}) error {
if cooperationModeNumber, ok := data["cooperationModeNumber"]; ok {
cooperationMode.CooperationModeNumber = cooperationModeNumber.(string)
}
if cooperationModeName, ok := data["cooperationModeName"]; ok {
cooperationMode.CooperationModeName = cooperationModeName.(string)
}
... ... @@ -60,17 +57,5 @@ func (cooperationMode *CooperationMode) Update(data map[string]interface{}) erro
if userId, ok := data["userId"]; ok {
cooperationMode.Operator.UserId = userId.(int64)
}
if userBaseId, ok := data["userBaseId"]; ok {
cooperationMode.Operator.UserBaseId = userBaseId.(int64)
}
if orgs, ok := data["orgs"]; ok {
cooperationMode.Operator.Orgs = orgs.([]*Org)
}
if roleId, ok := data["roleId"]; ok {
cooperationMode.Operator.Role.RoleId = roleId.(int64)
}
if roleName, ok := data["roleName"]; ok {
cooperationMode.Operator.Role.RoleName = roleName.(string)
}
return nil
}
... ...
... ... @@ -4,6 +4,7 @@ import (
"encoding/json"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/service_gateway/adaptor"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log"
)
type UserService struct {
... ... @@ -119,9 +120,19 @@ func (service *UserService) OperatorFrom(companyId int64, orgId int64, userId in
return nil, err
} else {
if operator != nil {
err := json.Unmarshal(operator.([]byte), returnData)
if err != nil {
return nil, err
log.Logger.Debug("操作人", map[string]interface{}{
"operator interface": operator,
})
operatorJson, err1 := json.Marshal(operator)
if err1 != nil {
return nil, err
}
log.Logger.Debug("操作人", map[string]interface{}{
"operator json": operatorJson,
})
err2 := json.Unmarshal(operatorJson, &returnData)
if err2 != nil {
return nil, err2
}
}
return returnData, nil
... ...
... ... @@ -22,7 +22,7 @@ type CooperationContractRelevant struct {
//合约人所属部门
Department *domain.Department `comment:"合约人所属部门"`
//合约人角色
Role *domain.Role `comment:"合约人角色"`
Roles []*domain.Role `comment:"合约人角色"`
//合约人用户信息
UserInfo *domain.UserInfo `comment:"合约人用户信息"`
//合约人用户类型
... ...
... ... @@ -60,7 +60,7 @@ func TransformToCooperationContractDomainModelFromPgModels(
Org: relevant.Org,
Orgs: relevant.Orgs,
Department: relevant.Department,
Roles: relevant.Role,
Roles: relevant.Roles,
UserInfo: relevant.UserInfo,
UserType: relevant.UserType,
Status: relevant.Status,
... ...
... ... @@ -17,7 +17,7 @@ func TransformToCooperationContractRelevantDomainModelFromPgModels(cooperationCo
Org: cooperationContractRelevantModel.Org,
Orgs: cooperationContractRelevantModel.Orgs,
Department: cooperationContractRelevantModel.Department,
Roles: cooperationContractRelevantModel.Role,
Roles: cooperationContractRelevantModel.Roles,
UserInfo: cooperationContractRelevantModel.UserInfo,
UserType: cooperationContractRelevantModel.UserType,
Status: cooperationContractRelevantModel.Status,
... ...
... ... @@ -106,7 +106,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai
Org: relevant.Org,
Orgs: relevant.Orgs,
Department: relevant.Department,
Role: relevant.Roles,
Roles: relevant.Roles,
UserInfo: relevant.UserInfo,
UserType: relevant.UserType,
Status: relevant.Status,
... ... @@ -267,7 +267,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai
Org: relevantDomain.Org,
Orgs: relevantDomain.Orgs,
Department: relevantDomain.Department,
Role: relevantDomain.Roles,
Roles: relevantDomain.Roles,
UserInfo: relevantDomain.UserInfo,
UserType: relevantDomain.UserType,
Status: relevantDomain.Status,
... ...
... ... @@ -24,6 +24,7 @@ func (repository *CooperationModeRepository) nextIdentify() (int64, error) {
id, err := IdWorker.NextId()
return id, err
}
func (repository *CooperationModeRepository) Save(cooperationMode *domain.CooperationMode) (*domain.CooperationMode, error) {
sqlBuildFields := []string{
"cooperation_mode_id",
... ... @@ -78,7 +79,7 @@ func (repository *CooperationModeRepository) Save(cooperationMode *domain.Cooper
cooperationMode.Operator,
cooperationMode.OperateTime,
cooperationMode.UpdatedAt,
cooperationMode.DeletedAt,
nil,
cooperationMode.CreatedAt,
); err != nil {
return cooperationMode, err
... ... @@ -110,7 +111,7 @@ func (repository *CooperationModeRepository) Save(cooperationMode *domain.Cooper
cooperationMode.Operator,
cooperationMode.OperateTime,
cooperationMode.UpdatedAt,
cooperationMode.DeletedAt,
nil,
cooperationMode.CreatedAt,
cooperationMode.Identify(),
); err != nil {
... ... @@ -119,6 +120,7 @@ func (repository *CooperationModeRepository) Save(cooperationMode *domain.Cooper
}
return cooperationMode, nil
}
func (repository *CooperationModeRepository) Remove(cooperationMode *domain.CooperationMode) (*domain.CooperationMode, error) {
tx := repository.transactionContext.PgTx
cooperationModeModel := new(models.CooperationMode)
... ... @@ -128,6 +130,7 @@ func (repository *CooperationModeRepository) Remove(cooperationMode *domain.Coop
}
return cooperationMode, nil
}
func (repository *CooperationModeRepository) FindOne(queryOptions map[string]interface{}) (*domain.CooperationMode, error) {
tx := repository.transactionContext.PgTx
cooperationModeModel := new(models.CooperationMode)
... ... @@ -146,6 +149,7 @@ func (repository *CooperationModeRepository) FindOne(queryOptions map[string]int
return transform.TransformToCooperationModeDomainModelFromPgModels(cooperationModeModel)
}
}
func (repository *CooperationModeRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.CooperationMode, error) {
tx := repository.transactionContext.PgTx
var cooperationModeModels []*models.CooperationMode
... ... @@ -166,6 +170,7 @@ func (repository *CooperationModeRepository) Find(queryOptions map[string]interf
return int64(count), cooperationModes, nil
}
}
func NewCooperationModeRepository(transactionContext *pgTransaction.TransactionContext) (*CooperationModeRepository, error) {
if transactionContext == nil {
return nil, fmt.Errorf("transactionContext参数不能为nil")
... ...
... ... @@ -70,7 +70,7 @@ func (serviceGateway *HttplibUserServiceGateway) GetUsers(companyId int64, orgId
}
// GetCompany 获取公司信息
func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (map[string]interface{}, error) {
func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (*translator.CompanyDetail, error) {
companyIdStr := strconv.FormatInt(companyId, 10)
url := serviceGateway.baseURL + "/company/" + companyIdStr
request := serviceGateway.createRequest(url, "get")
... ... @@ -84,15 +84,29 @@ func (serviceGateway *HttplibUserServiceGateway) GetCompany(companyId int64) (ma
"param": options,
})
}
response := make(map[string]interface{})
err2 := request.ToJSON(&response)
if err2 != nil {
return nil, err2
//response := make(map[string]interface{})
//err2 := request.ToJSON(&response)
//if err2 != nil {
// return nil, err2
//}
//
//data, err := serviceGateway.responseHandle(response)
//return data, err
byteResult, err := request.Bytes()
if err != nil {
return nil, fmt.Errorf("获取返回企业失败:%w", err)
}
data, err := serviceGateway.responseHandle(response)
return data, err
log.Logger.Debug("获取用户模块请求数据:返回企业。", map[string]interface{}{
"result": string(byteResult),
})
var result GatewayResponse
err = json.Unmarshal(byteResult, &result)
if err != nil {
return nil, fmt.Errorf("解析返回企业:%w", err)
}
var data translator.CompanyDetail
err = serviceGateway.getResponseData(result, &data)
return &data, err
}
// GetDepartment 获取部门信息
... ... @@ -116,23 +130,37 @@ func (serviceGateway *HttplibUserServiceGateway) GetDepartment(companyId int64,
}
// GetOrganization 获取组织信息
func (serviceGateway *HttplibUserServiceGateway) GetOrganization(companyId int64, organizationId int64) (map[string]interface{}, error) {
func (serviceGateway *HttplibUserServiceGateway) GetOrganization(companyId int64, organizationId int64) (*translator.OrganizationDetail, error) {
organizationIdStr := strconv.FormatInt(organizationId, 10)
url := serviceGateway.baseURL + "/org/" + organizationIdStr
request := serviceGateway.createRequest(url, "get")
options := make(map[string]interface{})
options["orgId"] = organizationId
_, err1 := request.JSONBody(options)
if err1 != nil {
return nil, err1
}
response := make(map[string]interface{})
err2 := request.ToJSON(&response)
if err2 != nil {
return nil, err2
//response := make(map[string]interface{})
//err2 := request.ToJSON(&response)
//if err2 != nil {
// return nil, err2
//}
//data, err := serviceGateway.responseHandle(response)
//return data, err
byteResult, err := request.Bytes()
if err != nil {
return nil, fmt.Errorf("获取返回组织失败:%w", err)
}
data, err := serviceGateway.responseHandle(response)
return data, err
log.Logger.Debug("获取用户模块请求数据:返回组织。", map[string]interface{}{
"result": string(byteResult),
})
var result GatewayResponse
err = json.Unmarshal(byteResult, &result)
if err != nil {
return nil, fmt.Errorf("解析返回组织:%w", err)
}
var data translator.OrganizationDetail
err = serviceGateway.getResponseData(result, &data)
return &data, err
}
// UserInMenu 判断用户是否具有模块权限
... ...
package service_gateway
import "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/service_gateway/translator"
type UserServiceGateway interface {
GetUser(companyId int64, orgId int64, uid int64) (map[string]interface{}, error)
GetUser(companyId int64, orgId int64, uid int64) (*translator.UserDetail, error)
GetUsers(companyId int64, orgId int64, uids []int64) (map[string]interface{}, error)
GetCompany(companyId int64) (map[string]interface{}, error)
GetOrganization(companyId int64, organizationId int64) (map[string]interface{}, error)
GetCompany(companyId int64) (*translator.CompanyDetail, error)
GetOrganization(companyId int64, organizationId int64) (*translator.OrganizationDetail, error)
GetDepartment(companyId int64, departmentId int64) (map[string]interface{}, error)
UserInMenu(companyId int64, userId int64, menuCode string) (bool, error)
UserInOrganization(companyId int64, orgId int64, userId int64) (bool, error)
... ...
... ... @@ -18,7 +18,7 @@ type OrganizationDetail struct {
OrgName string `json:"orgName"`
Ext struct {
} `json:"ext"`
IsOrg bool `json:"isOrg"`
IsOrg int `json:"isOrg"`
OrgStatus int `json:"orgStatus"`
}
... ...
... ... @@ -115,10 +115,10 @@ func (translator *UserTranslator) ToRelevantFromRepresentation(user *UserDetail)
}, nil
}
func (translator *UserTranslator) ToReferrerFromRepresentation(data map[string]interface{}) (*domain.Referrer, error) {
func (translator *UserTranslator) ToReferrerFromRepresentation(user *UserDetail) (*domain.Referrer, error) {
return &domain.Referrer{
UserId: data["userId"].(int64),
UserBaseId: data["userBaseId"].(int64),
UserId: user.UserId,
UserBaseId: user.UserBaseId,
Role: nil,
Orgs: nil,
Org: nil,
... ... @@ -129,10 +129,10 @@ func (translator *UserTranslator) ToReferrerFromRepresentation(data map[string]i
}, nil
}
func (translator *UserTranslator) ToUndertakerFromRepresentation(data map[string]interface{}) (*domain.Undertaker, error) {
func (translator *UserTranslator) ToUndertakerFromRepresentation(user *UserDetail) (*domain.Undertaker, error) {
return &domain.Undertaker{
UserId: data["userId"].(int64),
UserBaseId: data["userBaseId"].(int64),
UserId: user.UserId,
UserBaseId: user.UserBaseId,
Org: nil,
Orgs: nil,
Department: nil,
... ... @@ -145,10 +145,10 @@ func (translator *UserTranslator) ToUndertakerFromRepresentation(data map[string
}, nil
}
func (translator *UserTranslator) ToSalesmanFromRepresentation(data map[string]interface{}) (*domain.Salesman, error) {
func (translator *UserTranslator) ToSalesmanFromRepresentation(user *UserDetail) (*domain.Salesman, error) {
return &domain.Salesman{
UserId: data["userId"].(int64),
UserBaseId: data["userBaseId"].(int64),
UserId: user.UserId,
UserBaseId: user.UserBaseId,
Role: nil,
Orgs: nil,
Org: nil,
... ... @@ -159,10 +159,10 @@ func (translator *UserTranslator) ToSalesmanFromRepresentation(data map[string]i
}, nil
}
func (translator *UserTranslator) ToOperatorFromRepresentation(data map[string]interface{}) (*domain.User, error) {
func (translator *UserTranslator) ToOperatorFromRepresentation(user *UserDetail) (*domain.User, error) {
return &domain.User{
UserId: data["userId"].(int64),
UserBaseId: data["userBaseId"].(int64),
UserId: user.UserId,
UserBaseId: user.UserBaseId,
Org: nil,
Orgs: nil,
Department: nil,
... ... @@ -174,10 +174,10 @@ func (translator *UserTranslator) ToOperatorFromRepresentation(data map[string]i
}, nil
}
func (translator *UserTranslator) ToUserFromRepresentation(data map[string]interface{}) (*domain.User, error) {
func (translator *UserTranslator) ToUserFromRepresentation(user *UserDetail) (*domain.User, error) {
return &domain.User{
UserId: data["userId"].(int64),
UserBaseId: data["userBaseId"].(int64),
UserId: user.UserId,
UserBaseId: user.UserBaseId,
Org: nil,
Orgs: nil,
Department: nil,
... ...
... ... @@ -34,7 +34,7 @@ func (controller *CooperationModeController) UpdateCooperationMode() {
updateCooperationModeCommand.OrgId = header.OrgId
updateCooperationModeCommand.UserId = header.UserId
updateCooperationModeCommand.UserBaseId = header.UserBaseId
cooperationModeId := controller.GetString(":cooperationModeId")
cooperationModeId, _ := controller.GetInt64(":cooperationModeId")
updateCooperationModeCommand.CooperationModeId = cooperationModeId
data, err := cooperationModeService.UpdateCooperationMode(updateCooperationModeCommand)
controller.Response(data, err)
... ...