正在显示
15 个修改的文件
包含
659 行增加
和
238 行删除
| @@ -22,10 +22,10 @@ func CreateNoticeSettingRepository(options map[string]interface{}) (domain.Notic | @@ -22,10 +22,10 @@ func CreateNoticeSettingRepository(options map[string]interface{}) (domain.Notic | ||
| 22 | return repository.NewNoticeSettingRepository(transactionContext) | 22 | return repository.NewNoticeSettingRepository(transactionContext) |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | -func CreateNoticeEmptyRepository(options map[string]interface{}) (domain.NoticeEmptyRepository, error) { | 25 | +func CreateNoticePersonalRepository(options map[string]interface{}) (domain.NoticePersonalRepository, error) { |
| 26 | var transactionContext *pg.TransactionContext | 26 | var transactionContext *pg.TransactionContext |
| 27 | if value, ok := options["transactionContext"]; ok { | 27 | if value, ok := options["transactionContext"]; ok { |
| 28 | transactionContext = value.(*pg.TransactionContext) | 28 | transactionContext = value.(*pg.TransactionContext) |
| 29 | } | 29 | } |
| 30 | - return repository.NewNoticeEmptyRepository(transactionContext) | 30 | + return repository.NewNoticePersonalRepository(transactionContext) |
| 31 | } | 31 | } |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type AgreeJoinCreationProjectCommand struct { | ||
| 10 | + // 接收方用户id | ||
| 11 | + UserId int64 `json:"userId" valid:"Required"` | ||
| 12 | + // 共创项目id | ||
| 13 | + CreationProjectId int64 `json:"creationProjectId" valid:"Required"` | ||
| 14 | + // 共创项目名称 | ||
| 15 | + CreationProjectName string `json:"creationProjectName" valid:"Required"` | ||
| 16 | + // 共创项目编号 | ||
| 17 | + CreationProjectNumber string `json:"creationProjectNumber" valid:"Required"` | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (agreeJoinCreationProjectCommand *AgreeJoinCreationProjectCommand) Valid(validation *validation.Validation) { | ||
| 21 | + | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (agreeJoinCreationProjectCommand *AgreeJoinCreationProjectCommand) ValidateCommand() error { | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + b, err := valid.Valid(agreeJoinCreationProjectCommand) | ||
| 27 | + if err != nil { | ||
| 28 | + return err | ||
| 29 | + } | ||
| 30 | + if !b { | ||
| 31 | + for _, validErr := range valid.Errors { | ||
| 32 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + return nil | ||
| 36 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type InformExpectedDividendsCommand struct { | ||
| 10 | + // 用户id | ||
| 11 | + UserId int64 `json:"userId" valid:"Required"` | ||
| 12 | + // 共创项目id | ||
| 13 | + CreationProjectId int64 `json:"creationProjectId" valid:"Required"` | ||
| 14 | + // 共创项目名称 | ||
| 15 | + CreationProjectName string `json:"creationProjectName" valid:"Required"` | ||
| 16 | + // 共创合约id | ||
| 17 | + CreationContractId int64 `json:"creationContractId" valid:"Required"` | ||
| 18 | + // 共创合约名称 | ||
| 19 | + CreationContractName string `json:"creationContractName" valid:"Required"` | ||
| 20 | + // 共创合约编号 | ||
| 21 | + CreationContractNumber string `json:"creationContractNumber" valid:"Required"` | ||
| 22 | + // 产品名称 | ||
| 23 | + ProductName string `json:"productName" valid:"Required"` | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +func (informExpectedDividendsCommand *InformExpectedDividendsCommand) Valid(validation *validation.Validation) { | ||
| 27 | + | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +func (informExpectedDividendsCommand *InformExpectedDividendsCommand) ValidateCommand() error { | ||
| 31 | + valid := validation.Validation{} | ||
| 32 | + b, err := valid.Valid(informExpectedDividendsCommand) | ||
| 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 command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type InformJoinCreationContractCommand struct { | ||
| 10 | + // 接收方用户id | ||
| 11 | + UserId int64 `json:"userId" valid:"Required"` | ||
| 12 | + // 共创项目id | ||
| 13 | + CreationProjectId int64 `json:"creationProjectId" valid:"Required"` | ||
| 14 | + // 共创项目名称 | ||
| 15 | + CreationProjectName string `json:"creationProjectName" valid:"Required"` | ||
| 16 | + // 共创合约id | ||
| 17 | + CreationContractId int64 `json:"creationContractId" valid:"Required"` | ||
| 18 | + // 共创合约名称 | ||
| 19 | + CreationContractName string `json:"creationContractName" valid:"Required"` | ||
| 20 | + // 共创合约编号 | ||
| 21 | + CreationContractNumber string `json:"creationContractNumber" valid:"Required"` | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (informJoinCreationContractCommand *InformJoinCreationContractCommand) Valid(validation *validation.Validation) { | ||
| 25 | + | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +func (informJoinCreationContractCommand *InformJoinCreationContractCommand) ValidateCommand() error { | ||
| 29 | + valid := validation.Validation{} | ||
| 30 | + b, err := valid.Valid(informJoinCreationContractCommand) | ||
| 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 RefuseJoinCreationProjectCommand struct { | ||
| 10 | + // 接收方用户id | ||
| 11 | + UserId int64 `json:"userId" valid:"Required"` | ||
| 12 | + // 共创项目id | ||
| 13 | + CreationProjectId int64 `json:"creationProjectId" valid:"Required"` | ||
| 14 | + // 共创项目名称 | ||
| 15 | + CreationProjectName string `json:"creationProjectName" valid:"Required"` | ||
| 16 | + // 共创项目编号 | ||
| 17 | + CreationProjectNumber string `json:"creationProjectNumber" valid:"Required"` | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (refuseJoinCreationProjectCommand *RefuseJoinCreationProjectCommand) Valid(validation *validation.Validation) { | ||
| 21 | + | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (refuseJoinCreationProjectCommand *RefuseJoinCreationProjectCommand) ValidateCommand() error { | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + b, err := valid.Valid(refuseJoinCreationProjectCommand) | ||
| 27 | + if err != nil { | ||
| 28 | + return err | ||
| 29 | + } | ||
| 30 | + if !b { | ||
| 31 | + for _, validErr := range valid.Errors { | ||
| 32 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + return nil | ||
| 36 | +} |
| 1 | +package query | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/beego/beego/v2/core/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type GetNoticePersonalListQuery struct { | ||
| 10 | + // 接收方用户的id | ||
| 11 | + UserId int64 `json:"userId"` | ||
| 12 | + // 分页偏移量 | ||
| 13 | + PageSize int64 `json:"pageSize"` | ||
| 14 | + // 每页限制数量 默认20 | ||
| 15 | + PageIndex int64 `json:"pageIndex"` | ||
| 16 | + // 是否是已读 | ||
| 17 | + IsRead int64 `json:"isRead"` | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func (getNoticePersonalListQuery *GetNoticePersonalListQuery) Valid(validation *validation.Validation) { | ||
| 21 | + validation.SetError("CustomValid", "未实现的自定义认证") | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (getNoticePersonalListQuery *GetNoticePersonalListQuery) ValidateQuery() error { | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + b, err := valid.Valid(getNoticePersonalListQuery) | ||
| 27 | + if err != nil { | ||
| 28 | + return err | ||
| 29 | + } | ||
| 30 | + if !b { | ||
| 31 | + for _, validErr := range valid.Errors { | ||
| 32 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + return nil | ||
| 36 | +} |
| 1 | +package service | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/linmadan/egglib-go/core/application" | ||
| 5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/application/factory" | ||
| 6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/application/noticePersonal/command" | ||
| 7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/application/noticePersonal/query" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +// 个人消息通知 | ||
| 11 | +type NoticePersonalService struct { | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +// 设置消息:共创申请审核通过 | ||
| 15 | +func (noticePersonalService *NoticePersonalService) AgreeJoinCreationProject(agreeJoinCreationProjectCommand *command.AgreeJoinCreationProjectCommand) (interface{}, error) { | ||
| 16 | + if err := agreeJoinCreationProjectCommand.ValidateCommand(); err != nil { | ||
| 17 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 18 | + } | ||
| 19 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 20 | + if err != nil { | ||
| 21 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 22 | + } | ||
| 23 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 24 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 25 | + } | ||
| 26 | + defer func() { | ||
| 27 | + transactionContext.RollbackTransaction() | ||
| 28 | + }() | ||
| 29 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 30 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 31 | + } | ||
| 32 | + return nil, nil | ||
| 33 | +} | ||
| 34 | + | ||
| 35 | +// 获取消息列表 | ||
| 36 | +func (noticePersonalService *NoticePersonalService) GetNoticePersonalList(getNoticePersonalListQuery *query.GetNoticePersonalListQuery) (interface{}, error) { | ||
| 37 | + if err := getNoticePersonalListQuery.ValidateQuery(); err != nil { | ||
| 38 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 39 | + } | ||
| 40 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 41 | + if err != nil { | ||
| 42 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 43 | + } | ||
| 44 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 45 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 46 | + } | ||
| 47 | + defer func() { | ||
| 48 | + transactionContext.RollbackTransaction() | ||
| 49 | + }() | ||
| 50 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 51 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 52 | + } | ||
| 53 | + return nil, nil | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +// 设置消息:分红预算消息 | ||
| 57 | +func (noticePersonalService *NoticePersonalService) InformExpectedDividends(informExpectedDividendsCommand *command.InformExpectedDividendsCommand) (interface{}, error) { | ||
| 58 | + if err := informExpectedDividendsCommand.ValidateCommand(); err != nil { | ||
| 59 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 60 | + } | ||
| 61 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 62 | + if err != nil { | ||
| 63 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 64 | + } | ||
| 65 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 66 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 67 | + } | ||
| 68 | + defer func() { | ||
| 69 | + transactionContext.RollbackTransaction() | ||
| 70 | + }() | ||
| 71 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 72 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 73 | + } | ||
| 74 | + return nil, nil | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | +// 设置消息:共创确认 | ||
| 78 | +func (noticePersonalService *NoticePersonalService) InformJoinCreationContract(informJoinCreationContractCommand *command.InformJoinCreationContractCommand) (interface{}, error) { | ||
| 79 | + if err := informJoinCreationContractCommand.ValidateCommand(); err != nil { | ||
| 80 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 81 | + } | ||
| 82 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 83 | + if err != nil { | ||
| 84 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 85 | + } | ||
| 86 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 87 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 88 | + } | ||
| 89 | + defer func() { | ||
| 90 | + transactionContext.RollbackTransaction() | ||
| 91 | + }() | ||
| 92 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 93 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 94 | + } | ||
| 95 | + return nil, nil | ||
| 96 | +} | ||
| 97 | + | ||
| 98 | +// 设置消息:共创申请审核拒绝 | ||
| 99 | +func (noticePersonalService *NoticePersonalService) RefuseJoinCreationProject(refuseJoinCreationProjectCommand *command.RefuseJoinCreationProjectCommand) (interface{}, error) { | ||
| 100 | + if err := refuseJoinCreationProjectCommand.ValidateCommand(); err != nil { | ||
| 101 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 102 | + } | ||
| 103 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 104 | + if err != nil { | ||
| 105 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 106 | + } | ||
| 107 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 108 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 109 | + } | ||
| 110 | + defer func() { | ||
| 111 | + transactionContext.RollbackTransaction() | ||
| 112 | + }() | ||
| 113 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 114 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 115 | + } | ||
| 116 | + return nil, nil | ||
| 117 | +} | ||
| 118 | + | ||
| 119 | +func NewNoticePersonalService(options map[string]interface{}) *NoticePersonalService { | ||
| 120 | + newNoticePersonalService := &NoticePersonalService{} | ||
| 121 | + return newNoticePersonalService | ||
| 122 | +} |
pkg/domain/notice_empty.go
已删除
100644 → 0
| 1 | -package domain | ||
| 2 | - | ||
| 3 | -// 系统默认的空白消息配置样板 | ||
| 4 | -type NoticeEmpty struct { | ||
| 5 | - // 消息id | ||
| 6 | - NoticeEmptyId int64 `json:"noticeEmptyId"` | ||
| 7 | - // 内容模板 | ||
| 8 | - Content string `json:"content"` | ||
| 9 | - // 是否推送 【是:1】【否:2】 | ||
| 10 | - IsPush int `json:"isPush"` | ||
| 11 | - // 消息对应的业务模块 | ||
| 12 | - Module string `json:"module"` | ||
| 13 | - // 业务环节 | ||
| 14 | - ModuleAction string `json:"moduleAction"` | ||
| 15 | - // 消息对应的编码 | ||
| 16 | - SysCode string `json:"sysCode"` | ||
| 17 | -} | ||
| 18 | - | ||
| 19 | -type NoticeEmptyRepository interface { | ||
| 20 | - Save(noticeEmpty *NoticeEmpty) (*NoticeEmpty, error) //用不到 | ||
| 21 | - // Remove(noticeEmpty *NoticeEmpty) (*NoticeEmpty, error)//用户不到 | ||
| 22 | - // FindOne(queryOptions map[string]interface{}) (*NoticeEmpty, error) //用不到 | ||
| 23 | - Find(queryOptions map[string]interface{}) (int64, []*NoticeEmpty, error) | ||
| 24 | -} | ||
| 25 | - | ||
| 26 | -func (noticeEmpty *NoticeEmpty) Identify() interface{} { | ||
| 27 | - if noticeEmpty.NoticeEmptyId == 0 { | ||
| 28 | - return nil | ||
| 29 | - } | ||
| 30 | - return noticeEmpty.NoticeEmptyId | ||
| 31 | -} | ||
| 32 | - | ||
| 33 | -func (noticeEmpty *NoticeEmpty) Update(data map[string]interface{}) error { | ||
| 34 | - if noticeEmptyId, ok := data["noticeEmptyId"]; ok { | ||
| 35 | - noticeEmpty.NoticeEmptyId = noticeEmptyId.(int64) | ||
| 36 | - } | ||
| 37 | - if content, ok := data["content"]; ok { | ||
| 38 | - noticeEmpty.Content = content.(string) | ||
| 39 | - } | ||
| 40 | - if isPush, ok := data["isPush"]; ok { | ||
| 41 | - noticeEmpty.IsPush = isPush.(int) | ||
| 42 | - } | ||
| 43 | - if module, ok := data["module"]; ok { | ||
| 44 | - noticeEmpty.Module = module.(string) | ||
| 45 | - } | ||
| 46 | - if moduleAction, ok := data["moduleAction"]; ok { | ||
| 47 | - noticeEmpty.ModuleAction = moduleAction.(string) | ||
| 48 | - } | ||
| 49 | - if sysCode, ok := data["sysCode"]; ok { | ||
| 50 | - noticeEmpty.SysCode = sysCode.(string) | ||
| 51 | - } | ||
| 52 | - return nil | ||
| 53 | -} |
pkg/domain/notice_personal.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +const ( | ||
| 6 | + NoticePersonalIsNotRead = 1 | ||
| 7 | + NoticePersonalIsRead = 2 | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +// 个人消息通知内容 | ||
| 11 | +type NoticePersonal struct { | ||
| 12 | + // 编号id | ||
| 13 | + NoticePersonalId int64 `json:"noticePersonalId"` | ||
| 14 | + // 创建时间 | ||
| 15 | + CreatedAt time.Time `json:"createdAt"` | ||
| 16 | + // 删除时间 | ||
| 17 | + DeletedAt time.Time `json:"deletedAt"` | ||
| 18 | + // 更新时间 | ||
| 19 | + UpdatedAt time.Time `json:"updatedAt"` | ||
| 20 | + // 发送通知时的扩展参数 | ||
| 21 | + Extend string `json:"extend"` | ||
| 22 | + // 公司id | ||
| 23 | + CompanyId int64 `json:"companyId"` | ||
| 24 | + // 内容模板 | ||
| 25 | + Content string `json:"content"` | ||
| 26 | + // 是否已读【1:未读】【2:已读】 | ||
| 27 | + IsRead string `json:"isRead"` | ||
| 28 | + // 消息对应的业务模块 | ||
| 29 | + Module string `json:"module"` | ||
| 30 | + // 业务环节 | ||
| 31 | + ModuleAction string `json:"moduleAction"` | ||
| 32 | + //账号id | ||
| 33 | + UserBaseId int64 `json:"userBaseId"` | ||
| 34 | + // 组织id | ||
| 35 | + OrgId int64 `json:"orgId"` | ||
| 36 | + // 消息对应的编码 | ||
| 37 | + SysCode string `json:"sysCode"` | ||
| 38 | + // 接收方用户id | ||
| 39 | + UserId int64 `json:"userId"` | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +type NoticePersonalRepository interface { | ||
| 43 | + Save(noticePersonal *NoticePersonal) (*NoticePersonal, error) | ||
| 44 | + Remove(noticePersonal *NoticePersonal) (*NoticePersonal, error) | ||
| 45 | + FindOne(queryOptions map[string]interface{}) (*NoticePersonal, error) | ||
| 46 | + Find(queryOptions map[string]interface{}) (int64, []*NoticePersonal, error) | ||
| 47 | +} | ||
| 48 | + | ||
| 49 | +func (noticePersonal *NoticePersonal) Identify() interface{} { | ||
| 50 | + if noticePersonal.NoticePersonalId == 0 { | ||
| 51 | + return nil | ||
| 52 | + } | ||
| 53 | + return noticePersonal.NoticePersonalId | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +func (noticePersonal *NoticePersonal) Update(data map[string]interface{}) error { | ||
| 57 | + if createdAt, ok := data["createdAt"]; ok { | ||
| 58 | + noticePersonal.CreatedAt = createdAt.(time.Time) | ||
| 59 | + } | ||
| 60 | + if deletedAt, ok := data["deletedAt"]; ok { | ||
| 61 | + noticePersonal.DeletedAt = deletedAt.(time.Time) | ||
| 62 | + } | ||
| 63 | + if updatedAt, ok := data["updatedAt"]; ok { | ||
| 64 | + noticePersonal.UpdatedAt = updatedAt.(time.Time) | ||
| 65 | + } | ||
| 66 | + if extend, ok := data["extend"]; ok { | ||
| 67 | + noticePersonal.Extend = extend.(string) | ||
| 68 | + } | ||
| 69 | + if companyId, ok := data["companyId"]; ok { | ||
| 70 | + noticePersonal.CompanyId = companyId.(int64) | ||
| 71 | + } | ||
| 72 | + if content, ok := data["content"]; ok { | ||
| 73 | + noticePersonal.Content = content.(string) | ||
| 74 | + } | ||
| 75 | + if isRead, ok := data["isRead"]; ok { | ||
| 76 | + noticePersonal.IsRead = isRead.(string) | ||
| 77 | + } | ||
| 78 | + if module, ok := data["module"]; ok { | ||
| 79 | + noticePersonal.Module = module.(string) | ||
| 80 | + } | ||
| 81 | + if moduleAction, ok := data["moduleAction"]; ok { | ||
| 82 | + noticePersonal.ModuleAction = moduleAction.(string) | ||
| 83 | + } | ||
| 84 | + if noticePersonalId, ok := data["noticePersonalId"]; ok { | ||
| 85 | + noticePersonal.NoticePersonalId = noticePersonalId.(int64) | ||
| 86 | + } | ||
| 87 | + if organizationId, ok := data["organizationId"]; ok { | ||
| 88 | + noticePersonal.OrgId = organizationId.(int64) | ||
| 89 | + } | ||
| 90 | + if sysCode, ok := data["sysCode"]; ok { | ||
| 91 | + noticePersonal.SysCode = sysCode.(string) | ||
| 92 | + } | ||
| 93 | + if userId, ok := data["userId"]; ok { | ||
| 94 | + noticePersonal.UserId = userId.(int64) | ||
| 95 | + } | ||
| 96 | + if userId, ok := data["userBaseId"]; ok { | ||
| 97 | + noticePersonal.UserBaseId = userId.(int64) | ||
| 98 | + } | ||
| 99 | + return nil | ||
| 100 | +} |
| 1 | -package models | ||
| 2 | - | ||
| 3 | -type NoticeEmpty struct { | ||
| 4 | - tableName string `pg:"notice_emptys,alias:notice_empty"` | ||
| 5 | - // 消息id | ||
| 6 | - NoticeEmptyId int64 | ||
| 7 | - // 内容模板 | ||
| 8 | - Content string | ||
| 9 | - // 是否推送 【是:1】【否:2】 | ||
| 10 | - IsPush int | ||
| 11 | - // 消息对应的业务模块 | ||
| 12 | - Module string | ||
| 13 | - // 业务环节 | ||
| 14 | - ModuleAction string | ||
| 15 | - // 消息对应的编码 | ||
| 16 | - SysCode string | ||
| 17 | -} |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +type NoticePersonal struct { | ||
| 6 | + tableName string `pg:"notice_personals"` | ||
| 7 | + // 创建时间 | ||
| 8 | + CreatedAt time.Time | ||
| 9 | + // 删除时间 | ||
| 10 | + DeletedAt time.Time | ||
| 11 | + // 更新时间 | ||
| 12 | + UpdatedAt time.Time | ||
| 13 | + // 发送通知时的扩展参数 | ||
| 14 | + Extend string | ||
| 15 | + // 公司id | ||
| 16 | + CompanyId int64 | ||
| 17 | + // 内容模板 | ||
| 18 | + Content string | ||
| 19 | + // 是否已读【1:未读】【2:已读】 | ||
| 20 | + IsRead string | ||
| 21 | + // 消息对应的业务模块 | ||
| 22 | + Module string | ||
| 23 | + // 业务环节 | ||
| 24 | + ModuleAction string | ||
| 25 | + // 编号id | ||
| 26 | + NoticePersonalId int64 | ||
| 27 | + // 组织id | ||
| 28 | + OrgId int64 | ||
| 29 | + // 消息对应的编码 | ||
| 30 | + SysCode string | ||
| 31 | + // 接收方用户id | ||
| 32 | + UserId int64 | ||
| 33 | + | ||
| 34 | + UserBaseId int64 | ||
| 35 | +} |
| 1 | -package transform | ||
| 2 | - | ||
| 3 | -import ( | ||
| 4 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/domain" | ||
| 5 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/models" | ||
| 6 | -) | ||
| 7 | - | ||
| 8 | -func TransformToNoticeEmptyDomainModelFromPgModels(noticeEmptyModel *models.NoticeEmpty) (*domain.NoticeEmpty, error) { | ||
| 9 | - return &domain.NoticeEmpty{ | ||
| 10 | - NoticeEmptyId: noticeEmptyModel.NoticeEmptyId, | ||
| 11 | - Content: noticeEmptyModel.Content, | ||
| 12 | - IsPush: noticeEmptyModel.IsPush, | ||
| 13 | - Module: noticeEmptyModel.Module, | ||
| 14 | - ModuleAction: noticeEmptyModel.ModuleAction, | ||
| 15 | - SysCode: noticeEmptyModel.SysCode, | ||
| 16 | - }, nil | ||
| 17 | -} |
| 1 | +package transform | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/domain" | ||
| 5 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/models" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func TransformToNoticePersonalDomainModelFromPgModels(noticePersonalModel *models.NoticePersonal) (*domain.NoticePersonal, error) { | ||
| 9 | + return &domain.NoticePersonal{ | ||
| 10 | + CreatedAt: noticePersonalModel.CreatedAt, | ||
| 11 | + DeletedAt: noticePersonalModel.DeletedAt, | ||
| 12 | + UpdatedAt: noticePersonalModel.UpdatedAt, | ||
| 13 | + Extend: noticePersonalModel.Extend, | ||
| 14 | + CompanyId: noticePersonalModel.CompanyId, | ||
| 15 | + Content: noticePersonalModel.Content, | ||
| 16 | + IsRead: noticePersonalModel.IsRead, | ||
| 17 | + Module: noticePersonalModel.Module, | ||
| 18 | + ModuleAction: noticePersonalModel.ModuleAction, | ||
| 19 | + NoticePersonalId: noticePersonalModel.NoticePersonalId, | ||
| 20 | + OrgId: noticePersonalModel.OrgId, | ||
| 21 | + SysCode: noticePersonalModel.SysCode, | ||
| 22 | + UserId: noticePersonalModel.UserId, | ||
| 23 | + }, nil | ||
| 24 | +} |
| 1 | -package repository | ||
| 2 | - | ||
| 3 | -import ( | ||
| 4 | - "fmt" | ||
| 5 | - | ||
| 6 | - "github.com/go-pg/pg/v10" | ||
| 7 | - "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" | ||
| 8 | - pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 9 | - "github.com/linmadan/egglib-go/utils/snowflake" | ||
| 10 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/domain" | ||
| 11 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/models" | ||
| 12 | - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/transform" | ||
| 13 | -) | ||
| 14 | - | ||
| 15 | -type NoticeEmptyRepository struct { | ||
| 16 | - transactionContext *pgTransaction.TransactionContext | ||
| 17 | -} | ||
| 18 | - | ||
| 19 | -func (repository *NoticeEmptyRepository) nextIdentify() (int64, error) { | ||
| 20 | - IdWorker, err := snowflake.NewIdWorker(1) | ||
| 21 | - if err != nil { | ||
| 22 | - return 0, err | ||
| 23 | - } | ||
| 24 | - id, err := IdWorker.NextId() | ||
| 25 | - return id, err | ||
| 26 | -} | ||
| 27 | - | ||
| 28 | -func (repository *NoticeEmptyRepository) Save(noticeEmpty *domain.NoticeEmpty) (*domain.NoticeEmpty, error) { | ||
| 29 | - sqlBuildFields := []string{ | ||
| 30 | - "notice_empty_id", | ||
| 31 | - "content", | ||
| 32 | - "is_push", | ||
| 33 | - "module", | ||
| 34 | - "module_action", | ||
| 35 | - "sys_code", | ||
| 36 | - } | ||
| 37 | - insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | ||
| 38 | - insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) | ||
| 39 | - returningFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | ||
| 40 | - updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "noticeEmpty_id") | ||
| 41 | - updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) | ||
| 42 | - tx := repository.transactionContext.PgTx | ||
| 43 | - if noticeEmpty.Identify() == nil { | ||
| 44 | - noticeEmptyId, err := repository.nextIdentify() | ||
| 45 | - if err != nil { | ||
| 46 | - return noticeEmpty, err | ||
| 47 | - } else { | ||
| 48 | - noticeEmpty.NoticeEmptyId = noticeEmptyId | ||
| 49 | - } | ||
| 50 | - if _, err := tx.QueryOne( | ||
| 51 | - pg.Scan( | ||
| 52 | - ¬iceEmpty.NoticeEmptyId, | ||
| 53 | - ¬iceEmpty.Content, | ||
| 54 | - ¬iceEmpty.IsPush, | ||
| 55 | - ¬iceEmpty.Module, | ||
| 56 | - ¬iceEmpty.ModuleAction, | ||
| 57 | - ¬iceEmpty.SysCode, | ||
| 58 | - ), | ||
| 59 | - fmt.Sprintf("INSERT INTO notice_emptys (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | ||
| 60 | - noticeEmpty.NoticeEmptyId, | ||
| 61 | - noticeEmpty.Content, | ||
| 62 | - noticeEmpty.IsPush, | ||
| 63 | - noticeEmpty.Module, | ||
| 64 | - noticeEmpty.ModuleAction, | ||
| 65 | - noticeEmpty.SysCode, | ||
| 66 | - ); err != nil { | ||
| 67 | - return noticeEmpty, err | ||
| 68 | - } | ||
| 69 | - } else { | ||
| 70 | - if _, err := tx.QueryOne( | ||
| 71 | - pg.Scan( | ||
| 72 | - ¬iceEmpty.NoticeEmptyId, | ||
| 73 | - ¬iceEmpty.Content, | ||
| 74 | - ¬iceEmpty.IsPush, | ||
| 75 | - ¬iceEmpty.Module, | ||
| 76 | - ¬iceEmpty.ModuleAction, | ||
| 77 | - ¬iceEmpty.SysCode, | ||
| 78 | - ), | ||
| 79 | - fmt.Sprintf("UPDATE notice_emptys SET %s WHERE notice_empty_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | ||
| 80 | - noticeEmpty.NoticeEmptyId, | ||
| 81 | - noticeEmpty.Content, | ||
| 82 | - noticeEmpty.IsPush, | ||
| 83 | - noticeEmpty.Module, | ||
| 84 | - noticeEmpty.ModuleAction, | ||
| 85 | - noticeEmpty.SysCode, | ||
| 86 | - noticeEmpty.Identify(), | ||
| 87 | - ); err != nil { | ||
| 88 | - return noticeEmpty, err | ||
| 89 | - } | ||
| 90 | - } | ||
| 91 | - return noticeEmpty, nil | ||
| 92 | -} | ||
| 93 | - | ||
| 94 | -func (repository *NoticeEmptyRepository) Remove(noticeEmpty *domain.NoticeEmpty) (*domain.NoticeEmpty, error) { | ||
| 95 | - tx := repository.transactionContext.PgTx | ||
| 96 | - noticeEmptyModel := new(models.NoticeEmpty) | ||
| 97 | - noticeEmptyModel.NoticeEmptyId = noticeEmpty.Identify().(int64) | ||
| 98 | - if _, err := tx.Model(noticeEmptyModel).WherePK().Delete(); err != nil { | ||
| 99 | - return noticeEmpty, err | ||
| 100 | - } | ||
| 101 | - return noticeEmpty, nil | ||
| 102 | -} | ||
| 103 | -func (repository *NoticeEmptyRepository) FindOne(queryOptions map[string]interface{}) (*domain.NoticeEmpty, error) { | ||
| 104 | - tx := repository.transactionContext.PgTx | ||
| 105 | - noticeEmptyModel := new(models.NoticeEmpty) | ||
| 106 | - query := sqlbuilder.BuildQuery(tx.Model(noticeEmptyModel), queryOptions) | ||
| 107 | - query.SetWhereByQueryOption("notice_empty.notice_empty_id = ?", "noticeEmptyId") | ||
| 108 | - if err := query.First(); err != nil { | ||
| 109 | - if err.Error() == "pg: no rows in result set" { | ||
| 110 | - return nil, fmt.Errorf("没有此资源") | ||
| 111 | - } else { | ||
| 112 | - return nil, err | ||
| 113 | - } | ||
| 114 | - } | ||
| 115 | - if noticeEmptyModel.NoticeEmptyId == 0 { | ||
| 116 | - return nil, nil | ||
| 117 | - } else { | ||
| 118 | - return transform.TransformToNoticeEmptyDomainModelFromPgModels(noticeEmptyModel) | ||
| 119 | - } | ||
| 120 | -} | ||
| 121 | -func (repository *NoticeEmptyRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.NoticeEmpty, error) { | ||
| 122 | - tx := repository.transactionContext.PgTx | ||
| 123 | - var noticeEmptyModels []*models.NoticeEmpty | ||
| 124 | - noticeEmptys := make([]*domain.NoticeEmpty, 0) | ||
| 125 | - query := sqlbuilder.BuildQuery(tx.Model(¬iceEmptyModels), queryOptions) | ||
| 126 | - query.SetOffsetAndLimit(20) | ||
| 127 | - query.SetOrderDirect("notice_empty_id", "DESC") | ||
| 128 | - if count, err := query.SelectAndCount(); err != nil { | ||
| 129 | - return 0, noticeEmptys, err | ||
| 130 | - } else { | ||
| 131 | - for _, noticeEmptyModel := range noticeEmptyModels { | ||
| 132 | - if noticeEmpty, err := transform.TransformToNoticeEmptyDomainModelFromPgModels(noticeEmptyModel); err != nil { | ||
| 133 | - return 0, noticeEmptys, err | ||
| 134 | - } else { | ||
| 135 | - noticeEmptys = append(noticeEmptys, noticeEmpty) | ||
| 136 | - } | ||
| 137 | - } | ||
| 138 | - return int64(count), noticeEmptys, nil | ||
| 139 | - } | ||
| 140 | -} | ||
| 141 | -func NewNoticeEmptyRepository(transactionContext *pgTransaction.TransactionContext) (*NoticeEmptyRepository, error) { | ||
| 142 | - if transactionContext == nil { | ||
| 143 | - return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 144 | - } else { | ||
| 145 | - return &NoticeEmptyRepository{ | ||
| 146 | - transactionContext: transactionContext, | ||
| 147 | - }, nil | ||
| 148 | - } | ||
| 149 | -} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" | ||
| 8 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 9 | + "github.com/linmadan/egglib-go/utils/snowflake" | ||
| 10 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/domain" | ||
| 11 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/models" | ||
| 12 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-basic/pkg/infrastructure/pg/transform" | ||
| 13 | +) | ||
| 14 | + | ||
| 15 | +type NoticePersonalRepository struct { | ||
| 16 | + transactionContext *pgTransaction.TransactionContext | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +func (repository *NoticePersonalRepository) nextIdentify() (int64, error) { | ||
| 20 | + IdWorker, err := snowflake.NewIdWorker(1) | ||
| 21 | + if err != nil { | ||
| 22 | + return 0, err | ||
| 23 | + } | ||
| 24 | + id, err := IdWorker.NextId() | ||
| 25 | + return id, err | ||
| 26 | +} | ||
| 27 | +func (repository *NoticePersonalRepository) Save(noticePersonal *domain.NoticePersonal) (*domain.NoticePersonal, error) { | ||
| 28 | + sqlBuildFields := []string{ | ||
| 29 | + "created_at", | ||
| 30 | + "deleted_at", | ||
| 31 | + "updated_at", | ||
| 32 | + "extend", | ||
| 33 | + "company_id", | ||
| 34 | + "content", | ||
| 35 | + "is_read", | ||
| 36 | + "module", | ||
| 37 | + "module_action", | ||
| 38 | + "notice_personal_id", | ||
| 39 | + "org_id", | ||
| 40 | + "sys_code", | ||
| 41 | + "user_id", | ||
| 42 | + "user_base_id", | ||
| 43 | + } | ||
| 44 | + insertFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | ||
| 45 | + insertPlaceHoldersSnippet := sqlbuilder.SqlPlaceHoldersSnippet(sqlBuildFields) | ||
| 46 | + returningFieldsSnippet := sqlbuilder.SqlFieldsSnippet(sqlBuildFields) | ||
| 47 | + updateFields := sqlbuilder.RemoveSqlFields(sqlBuildFields, "noticePersonal_id") | ||
| 48 | + updateFieldsSnippet := sqlbuilder.SqlUpdateFieldsSnippet(updateFields) | ||
| 49 | + tx := repository.transactionContext.PgTx | ||
| 50 | + if noticePersonal.Identify() == nil { | ||
| 51 | + noticePersonalId, err := repository.nextIdentify() | ||
| 52 | + if err != nil { | ||
| 53 | + return noticePersonal, err | ||
| 54 | + } else { | ||
| 55 | + noticePersonal.NoticePersonalId = noticePersonalId | ||
| 56 | + } | ||
| 57 | + if _, err := tx.QueryOne( | ||
| 58 | + pg.Scan( | ||
| 59 | + ¬icePersonal.CreatedAt, | ||
| 60 | + ¬icePersonal.DeletedAt, | ||
| 61 | + ¬icePersonal.UpdatedAt, | ||
| 62 | + ¬icePersonal.Extend, | ||
| 63 | + ¬icePersonal.CompanyId, | ||
| 64 | + ¬icePersonal.Content, | ||
| 65 | + ¬icePersonal.IsRead, | ||
| 66 | + ¬icePersonal.Module, | ||
| 67 | + ¬icePersonal.ModuleAction, | ||
| 68 | + ¬icePersonal.NoticePersonalId, | ||
| 69 | + ¬icePersonal.OrgId, | ||
| 70 | + ¬icePersonal.SysCode, | ||
| 71 | + ¬icePersonal.UserId, | ||
| 72 | + ¬icePersonal.UserBaseId, | ||
| 73 | + ), | ||
| 74 | + fmt.Sprintf("INSERT INTO notice_personals (%s) VALUES (%s) RETURNING %s", insertFieldsSnippet, insertPlaceHoldersSnippet, returningFieldsSnippet), | ||
| 75 | + noticePersonal.CreatedAt, | ||
| 76 | + noticePersonal.DeletedAt, | ||
| 77 | + noticePersonal.UpdatedAt, | ||
| 78 | + noticePersonal.Extend, | ||
| 79 | + noticePersonal.CompanyId, | ||
| 80 | + noticePersonal.Content, | ||
| 81 | + noticePersonal.IsRead, | ||
| 82 | + noticePersonal.Module, | ||
| 83 | + noticePersonal.ModuleAction, | ||
| 84 | + noticePersonal.NoticePersonalId, | ||
| 85 | + noticePersonal.OrgId, | ||
| 86 | + noticePersonal.SysCode, | ||
| 87 | + noticePersonal.UserId, | ||
| 88 | + noticePersonal.UserBaseId, | ||
| 89 | + ); err != nil { | ||
| 90 | + return noticePersonal, err | ||
| 91 | + } | ||
| 92 | + } else { | ||
| 93 | + if _, err := tx.QueryOne( | ||
| 94 | + pg.Scan( | ||
| 95 | + ¬icePersonal.CreatedAt, | ||
| 96 | + ¬icePersonal.DeletedAt, | ||
| 97 | + ¬icePersonal.UpdatedAt, | ||
| 98 | + ¬icePersonal.Extend, | ||
| 99 | + ¬icePersonal.CompanyId, | ||
| 100 | + ¬icePersonal.Content, | ||
| 101 | + ¬icePersonal.IsRead, | ||
| 102 | + ¬icePersonal.Module, | ||
| 103 | + ¬icePersonal.ModuleAction, | ||
| 104 | + ¬icePersonal.NoticePersonalId, | ||
| 105 | + ¬icePersonal.OrgId, | ||
| 106 | + ¬icePersonal.SysCode, | ||
| 107 | + ¬icePersonal.UserId, | ||
| 108 | + ¬icePersonal.UserBaseId, | ||
| 109 | + ), | ||
| 110 | + fmt.Sprintf("UPDATE notice_personals SET %s WHERE notice_personal_id=? RETURNING %s", updateFieldsSnippet, returningFieldsSnippet), | ||
| 111 | + noticePersonal.CreatedAt, | ||
| 112 | + noticePersonal.DeletedAt, | ||
| 113 | + noticePersonal.UpdatedAt, | ||
| 114 | + noticePersonal.Extend, | ||
| 115 | + noticePersonal.CompanyId, | ||
| 116 | + noticePersonal.Content, | ||
| 117 | + noticePersonal.IsRead, | ||
| 118 | + noticePersonal.Module, | ||
| 119 | + noticePersonal.ModuleAction, | ||
| 120 | + noticePersonal.NoticePersonalId, | ||
| 121 | + noticePersonal.OrgId, | ||
| 122 | + noticePersonal.SysCode, | ||
| 123 | + noticePersonal.UserId, | ||
| 124 | + noticePersonal.Identify(), | ||
| 125 | + ); err != nil { | ||
| 126 | + return noticePersonal, err | ||
| 127 | + } | ||
| 128 | + } | ||
| 129 | + return noticePersonal, nil | ||
| 130 | +} | ||
| 131 | +func (repository *NoticePersonalRepository) Remove(noticePersonal *domain.NoticePersonal) (*domain.NoticePersonal, error) { | ||
| 132 | + tx := repository.transactionContext.PgTx | ||
| 133 | + noticePersonalModel := new(models.NoticePersonal) | ||
| 134 | + noticePersonalModel.NoticePersonalId = noticePersonal.Identify().(int64) | ||
| 135 | + if _, err := tx.Model(noticePersonalModel).WherePK().Delete(); err != nil { | ||
| 136 | + return noticePersonal, err | ||
| 137 | + } | ||
| 138 | + return noticePersonal, nil | ||
| 139 | +} | ||
| 140 | +func (repository *NoticePersonalRepository) FindOne(queryOptions map[string]interface{}) (*domain.NoticePersonal, error) { | ||
| 141 | + tx := repository.transactionContext.PgTx | ||
| 142 | + noticePersonalModel := new(models.NoticePersonal) | ||
| 143 | + query := sqlbuilder.BuildQuery(tx.Model(noticePersonalModel), queryOptions) | ||
| 144 | + query.SetWhereByQueryOption("notice_personal.notice_personal_id = ?", "noticePersonalId") | ||
| 145 | + if err := query.First(); err != nil { | ||
| 146 | + if err.Error() == "pg: no rows in result set" { | ||
| 147 | + return nil, fmt.Errorf("没有此资源") | ||
| 148 | + } else { | ||
| 149 | + return nil, err | ||
| 150 | + } | ||
| 151 | + } | ||
| 152 | + if noticePersonalModel.NoticePersonalId == 0 { | ||
| 153 | + return nil, nil | ||
| 154 | + } else { | ||
| 155 | + return transform.TransformToNoticePersonalDomainModelFromPgModels(noticePersonalModel) | ||
| 156 | + } | ||
| 157 | +} | ||
| 158 | +func (repository *NoticePersonalRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.NoticePersonal, error) { | ||
| 159 | + tx := repository.transactionContext.PgTx | ||
| 160 | + var noticePersonalModels []*models.NoticePersonal | ||
| 161 | + noticePersonals := make([]*domain.NoticePersonal, 0) | ||
| 162 | + query := sqlbuilder.BuildQuery(tx.Model(¬icePersonalModels), queryOptions) | ||
| 163 | + query.SetOffsetAndLimit(20) | ||
| 164 | + query.SetOrderDirect("notice_personal_id", "DESC") | ||
| 165 | + if count, err := query.SelectAndCount(); err != nil { | ||
| 166 | + return 0, noticePersonals, err | ||
| 167 | + } else { | ||
| 168 | + for _, noticePersonalModel := range noticePersonalModels { | ||
| 169 | + if noticePersonal, err := transform.TransformToNoticePersonalDomainModelFromPgModels(noticePersonalModel); err != nil { | ||
| 170 | + return 0, noticePersonals, err | ||
| 171 | + } else { | ||
| 172 | + noticePersonals = append(noticePersonals, noticePersonal) | ||
| 173 | + } | ||
| 174 | + } | ||
| 175 | + return int64(count), noticePersonals, nil | ||
| 176 | + } | ||
| 177 | +} | ||
| 178 | +func NewNoticePersonalRepository(transactionContext *pgTransaction.TransactionContext) (*NoticePersonalRepository, error) { | ||
| 179 | + if transactionContext == nil { | ||
| 180 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 181 | + } else { | ||
| 182 | + return &NoticePersonalRepository{ | ||
| 183 | + transactionContext: transactionContext, | ||
| 184 | + }, nil | ||
| 185 | + } | ||
| 186 | +} |
-
请 注册 或 登录 后发表评论