notice_setting.go 5.2 KB
package service

import (
	"strconv"

	"github.com/linmadan/egglib-go/core/application"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/noticesetting/command"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/noticesetting/query"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_basic"
)

// 推送消息配置
type NoticeSettingService struct {
}

//NoticeSettingList 推送消息配置列表
func (noticeSettingService *NoticeSettingService) NoticeSettingList(noticeSettingListQuery *query.NoticeSettingListQuery) (int64, interface{}, error) {
	if err := noticeSettingListQuery.ValidateQuery(); err != nil {
		return 0, nil, application.ThrowError(application.ARG_ERROR, err.Error())
	}
	creationBasicGateway := allied_creation_basic.NewHttplibAlliedCreationBasic(
		noticeSettingListQuery.Operator,
	)
	result, err := creationBasicGateway.NoticeSettingSearch(allied_creation_basic.ReqNoticeSettingSearch{
		PageIndex: noticeSettingListQuery.PageNumber,
		PageSize:  noticeSettingListQuery.PageSize,
		CompanyId: noticeSettingListQuery.Operator.CompanyId,
	})
	if err != nil {
		return 0, nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}

	return result.Count, result.NoticeSettings, nil
}

//NoticeSettingProfile 推送消息配置需求的参数候选项
func (noticeSettingService *NoticeSettingService) NoticeSettingProfile(noticeSettingProfileQuery *query.NoticeSettingProfileQuery) (interface{}, error) {
	if err := noticeSettingProfileQuery.ValidateQuery(); err != nil {
		return nil, application.ThrowError(application.ARG_ERROR, err.Error())
	}
	creationBasicGateway := allied_creation_basic.NewHttplibAlliedCreationBasic(
		noticeSettingProfileQuery.Operator,
	)
	result, err := creationBasicGateway.NoticeSettingProfile(allied_creation_basic.ReqNoticeSettingProfile{})
	return result, err
}

// NoticeSettingUpdate 更新配置
func (noticeSettingService *NoticeSettingService) NoticeSettingUpdate(noticeSettingUpdateCommand *command.NoticeSettingUpdateCommand) (interface{}, error) {
	if err := noticeSettingUpdateCommand.ValidateCommand(); err != nil {
		return nil, application.ThrowError(application.ARG_ERROR, err.Error())
	}
	creationBasicGateway := allied_creation_basic.NewHttplibAlliedCreationBasic(
		noticeSettingUpdateCommand.Operator,
	)

	noticeSettingID, _ := strconv.Atoi(noticeSettingUpdateCommand.NoticeSettingId)
	_, err := creationBasicGateway.NoticeSettingUpdate(allied_creation_basic.ReqNoticeSettingUpdate{
		NoticeSettingID: noticeSettingID,
		CompanyID:       int(noticeSettingUpdateCommand.Operator.CompanyId),
		Content:         noticeSettingUpdateCommand.Content,
		IsPush:          noticeSettingUpdateCommand.IsPush,
		Module:          noticeSettingUpdateCommand.Module,
		ModuleAction:    noticeSettingUpdateCommand.ModuleAction,
		OrganizationID:  int(noticeSettingUpdateCommand.Operator.OrgId),
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	return noticeSettingUpdateCommand, nil
}

// NoticeSettingUpdate 添加配置
func (noticeSettingService *NoticeSettingService) NoticeSettingAdd(noticeSettingAddCommand *command.NoticeSettingAddCommand) (interface{}, error) {
	if err := noticeSettingAddCommand.ValidateCommand(); err != nil {
		return nil, application.ThrowError(application.ARG_ERROR, err.Error())
	}
	creationBasicGateway := allied_creation_basic.NewHttplibAlliedCreationBasic(
		noticeSettingAddCommand.Operator,
	)
	result, err := creationBasicGateway.NoticeSettingAdd(allied_creation_basic.ReqNoticeSettingAdd{
		CompanyID:      int(noticeSettingAddCommand.Operator.CompanyId),
		Content:        noticeSettingAddCommand.Content,
		IsPush:         noticeSettingAddCommand.IsPush,
		Module:         noticeSettingAddCommand.Module,
		ModuleAction:   noticeSettingAddCommand.ModuleAction,
		OrganizationID: int(noticeSettingAddCommand.Operator.OrgId),
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	data := struct {
		NoticeSettingId int `json:"noticeSettingId"`
		command.NoticeSettingAddCommand
	}{
		NoticeSettingId:         result.NoticeSettingID,
		NoticeSettingAddCommand: *noticeSettingAddCommand,
	}
	return data, nil
}

// NoticeSettingGet 获取配置
func (noticeSettingService *NoticeSettingService) NoticeSettingGet(noticeSettingGetQuery *query.NoticeSettingGetQuery) (interface{}, error) {
	if err := noticeSettingGetQuery.ValidateQuery(); err != nil {
		return nil, application.ThrowError(application.ARG_ERROR, err.Error())
	}
	creationBasicGateway := allied_creation_basic.NewHttplibAlliedCreationBasic(
		noticeSettingGetQuery.Operator,
	)

	noticeSettingID, _ := strconv.Atoi(noticeSettingGetQuery.NoticeSettingId)
	result, err := creationBasicGateway.NoticeSettingGet(allied_creation_basic.ReqNoticeSettingGet{
		NoticeSettingID: noticeSettingID,
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	return result, nil
}

func NewNoticeSettingService(options map[string]interface{}) *NoticeSettingService {
	newNoticeSettingService := &NoticeSettingService{}
	return newNoticeSettingService
}