增加:
1.增加日志记录 2.权限过期时间修改 3.客户端版本管理 4.操作日志
正在显示
48 个修改的文件
包含
1697 行增加
和
9 行删除
| @@ -12,4 +12,4 @@ require ( | @@ -12,4 +12,4 @@ require ( | ||
| 12 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 | 12 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 |
| 13 | ) | 13 | ) |
| 14 | 14 | ||
| 15 | -//replace github.com/tiptok/gocomm v1.0.2 => F:\go\src\learn_project\gocomm | 15 | +replace github.com/tiptok/gocomm v1.0.3 => F:\go\src\learn_project\gocomm |
| @@ -2,6 +2,9 @@ package main | @@ -2,6 +2,9 @@ package main | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "github.com/astaxie/beego" | 4 | "github.com/astaxie/beego" |
| 5 | + "github.com/tiptok/gocomm/config" | ||
| 6 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/constant" | ||
| 5 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/constant" | 8 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/constant" |
| 6 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg" | 9 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg" |
| 7 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/redis" | 10 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/redis" |
| @@ -13,5 +16,10 @@ func main() { | @@ -13,5 +16,10 @@ func main() { | ||
| 13 | 16 | ||
| 14 | }() | 17 | }() |
| 15 | beego.BConfig.CopyRequestBody = true | 18 | beego.BConfig.CopyRequestBody = true |
| 19 | + | ||
| 20 | + log.InitLog(config.Logger{ | ||
| 21 | + Filename: constant.LOG_File, | ||
| 22 | + Level: constant.LOG_LEVEL, | ||
| 23 | + }) | ||
| 16 | beego.Run() | 24 | beego.Run() |
| 17 | } | 25 | } |
| @@ -46,7 +46,7 @@ func (svr *AuthService) Login(header *protocol.RequestHeader, request *protocolx | @@ -46,7 +46,7 @@ func (svr *AuthService) Login(header *protocol.RequestHeader, request *protocolx | ||
| 46 | err = protocol.NewCustomMessage(1, "密码有误!") | 46 | err = protocol.NewCustomMessage(1, "密码有误!") |
| 47 | return | 47 | return |
| 48 | } | 48 | } |
| 49 | - token, _ := common.GenerateToken(fmt.Sprintf("%v", user.Id), user.Passwd) | 49 | + token, _ := common.GenerateToken(fmt.Sprintf("%v", user.Id), user.Passwd, common.WithExpire(domain.TokenExpire), common.WithAddData(map[string]interface{}{"UserName": user.Name})) |
| 50 | rsp.Access = map[string]interface{}{ | 50 | rsp.Access = map[string]interface{}{ |
| 51 | "accessToken": "Bearer " + token, | 51 | "accessToken": "Bearer " + token, |
| 52 | "expiresIn": domain.TokenExpire, | 52 | "expiresIn": domain.TokenExpire, |
| @@ -165,6 +165,7 @@ func (svr *AuthService) CaptchaInit(header *protocol.RequestHeader, request *pro | @@ -165,6 +165,7 @@ func (svr *AuthService) CaptchaInit(header *protocol.RequestHeader, request *pro | ||
| 165 | func (svr *AuthService) ChangePassword(header *protocol.RequestHeader, request *protocolx.ChangePasswordRequest) (rsp *protocolx.ChangePasswordResponse, err error) { | 165 | func (svr *AuthService) ChangePassword(header *protocol.RequestHeader, request *protocolx.ChangePasswordRequest) (rsp *protocolx.ChangePasswordResponse, err error) { |
| 166 | var ( | 166 | var ( |
| 167 | transactionContext, _ = factory.CreateTransactionContext(nil) | 167 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 168 | + UserRepository, _ = factory.CreateUserRepository(transactionContext) | ||
| 168 | ) | 169 | ) |
| 169 | rsp = &protocolx.ChangePasswordResponse{} | 170 | rsp = &protocolx.ChangePasswordResponse{} |
| 170 | if err = request.ValidateCommand(); err != nil { | 171 | if err = request.ValidateCommand(); err != nil { |
| @@ -178,6 +179,20 @@ func (svr *AuthService) ChangePassword(header *protocol.RequestHeader, request * | @@ -178,6 +179,20 @@ func (svr *AuthService) ChangePassword(header *protocol.RequestHeader, request * | ||
| 178 | transactionContext.RollbackTransaction() | 179 | transactionContext.RollbackTransaction() |
| 179 | }() | 180 | }() |
| 180 | 181 | ||
| 182 | + var user *domain.Users | ||
| 183 | + if user, err = UserRepository.FindOne(map[string]interface{}{"phone": request.Phone}); err != nil { | ||
| 184 | + err = protocol.NewCustomMessage(1, "用户不存在") | ||
| 185 | + return | ||
| 186 | + } | ||
| 187 | + if user.Passwd != request.OldPwd { | ||
| 188 | + err = protocol.NewCustomMessage(1, "旧密码输入有误") | ||
| 189 | + return | ||
| 190 | + } | ||
| 191 | + user.Passwd = request.NewPwd | ||
| 192 | + if _, err = UserRepository.Save(user); err != nil { | ||
| 193 | + return | ||
| 194 | + } | ||
| 195 | + | ||
| 181 | err = transactionContext.CommitTransaction() | 196 | err = transactionContext.CommitTransaction() |
| 182 | return | 197 | return |
| 183 | } | 198 | } |
| @@ -76,7 +76,7 @@ func (svr *CacheService) ValidUserAccess(userId int64, object string, method str | @@ -76,7 +76,7 @@ func (svr *CacheService) ValidUserAccess(userId int64, object string, method str | ||
| 76 | var userAccess []*domain.Access | 76 | var userAccess []*domain.Access |
| 77 | var isAdmin bool | 77 | var isAdmin bool |
| 78 | defer func() { | 78 | defer func() { |
| 79 | - log.Info(fmt.Sprintf("ValidUserAccess user:%v object:%v method:%v result:%v", userId, object, method, result)) | 79 | + //log.Info(fmt.Sprintf("ValidUserAccess user:%v object:%v method:%v result:%v", userId, object, method, result)) |
| 80 | }() | 80 | }() |
| 81 | if isAdmin, err = svr.ValidUser(userId); err != nil { | 81 | if isAdmin, err = svr.ValidUser(userId); err != nil { |
| 82 | return | 82 | return |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/common" | ||
| 5 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | ||
| 10 | + protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/client_version" | ||
| 11 | + "time" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +type ClientVersionService struct { | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (svr *ClientVersionService) CreateClientVersion(header *protocol.RequestHeader, request *protocolx.CreateClientVersionRequest) (rsp interface{}, err error) { | ||
| 18 | + var ( | ||
| 19 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 20 | + ) | ||
| 21 | + rsp = &protocolx.CreateClientVersionResponse{} | ||
| 22 | + if err = request.ValidateCommand(); err != nil { | ||
| 23 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 24 | + return | ||
| 25 | + } | ||
| 26 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 27 | + log.Error(err) | ||
| 28 | + return nil, err | ||
| 29 | + } | ||
| 30 | + defer func() { | ||
| 31 | + transactionContext.RollbackTransaction() | ||
| 32 | + }() | ||
| 33 | + newClientVersion := &domain.ClientVersion{ | ||
| 34 | + Commiter: header.UserId, | ||
| 35 | + ProjectName: request.ProjectName, | ||
| 36 | + Version: request.Version, | ||
| 37 | + Title: request.Title, | ||
| 38 | + Remark: request.Remark, | ||
| 39 | + ClientPackageInfo: request.ClientPackageInfo, | ||
| 40 | + CreateTime: time.Now(), | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + var ClientVersionRepository, _ = factory.CreateClientVersionRepository(transactionContext) | ||
| 44 | + if m, err := ClientVersionRepository.Save(newClientVersion); err != nil { | ||
| 45 | + return nil, err | ||
| 46 | + } else { | ||
| 47 | + rsp = m | ||
| 48 | + } | ||
| 49 | + err = transactionContext.CommitTransaction() | ||
| 50 | + return | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +func (svr *ClientVersionService) UpdateClientVersion(header *protocol.RequestHeader, request *protocolx.UpdateClientVersionRequest) (rsp interface{}, err error) { | ||
| 54 | + var ( | ||
| 55 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 56 | + ) | ||
| 57 | + rsp = &protocolx.UpdateClientVersionResponse{} | ||
| 58 | + if err = request.ValidateCommand(); err != nil { | ||
| 59 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 60 | + return | ||
| 61 | + } | ||
| 62 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 63 | + log.Error(err) | ||
| 64 | + return nil, err | ||
| 65 | + } | ||
| 66 | + defer func() { | ||
| 67 | + transactionContext.RollbackTransaction() | ||
| 68 | + }() | ||
| 69 | + | ||
| 70 | + var ClientVersionRepository, _ = factory.CreateClientVersionRepository(transactionContext) | ||
| 71 | + var clientVersion *domain.ClientVersion | ||
| 72 | + if clientVersion, err = ClientVersionRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { | ||
| 73 | + return | ||
| 74 | + } | ||
| 75 | + if err = clientVersion.Update(common.ObjectToMap(request)); err != nil { | ||
| 76 | + return | ||
| 77 | + } | ||
| 78 | + if clientVersion, err = ClientVersionRepository.Save(clientVersion); err != nil { | ||
| 79 | + return | ||
| 80 | + } | ||
| 81 | + err = transactionContext.CommitTransaction() | ||
| 82 | + return | ||
| 83 | +} | ||
| 84 | + | ||
| 85 | +func (svr *ClientVersionService) GetClientVersion(header *protocol.RequestHeader, request *protocolx.GetClientVersionRequest) (rsp interface{}, err error) { | ||
| 86 | + var ( | ||
| 87 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 88 | + ) | ||
| 89 | + rsp = &protocolx.GetClientVersionResponse{} | ||
| 90 | + if err = request.ValidateCommand(); err != nil { | ||
| 91 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 92 | + return | ||
| 93 | + } | ||
| 94 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 95 | + log.Error(err) | ||
| 96 | + return nil, err | ||
| 97 | + } | ||
| 98 | + defer func() { | ||
| 99 | + transactionContext.RollbackTransaction() | ||
| 100 | + }() | ||
| 101 | + | ||
| 102 | + var ClientVersionRepository, _ = factory.CreateClientVersionRepository(transactionContext) | ||
| 103 | + var clientVersion *domain.ClientVersion | ||
| 104 | + if clientVersion, err = ClientVersionRepository.FindOne(common.ObjectToMap(request)); err != nil { | ||
| 105 | + return | ||
| 106 | + } | ||
| 107 | + rsp = clientVersion | ||
| 108 | + err = transactionContext.CommitTransaction() | ||
| 109 | + return | ||
| 110 | +} | ||
| 111 | + | ||
| 112 | +func (svr *ClientVersionService) DeleteClientVersion(header *protocol.RequestHeader, request *protocolx.DeleteClientVersionRequest) (rsp interface{}, err error) { | ||
| 113 | + var ( | ||
| 114 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 115 | + ) | ||
| 116 | + rsp = &protocolx.DeleteClientVersionResponse{} | ||
| 117 | + if err = request.ValidateCommand(); err != nil { | ||
| 118 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 119 | + return | ||
| 120 | + } | ||
| 121 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 122 | + log.Error(err) | ||
| 123 | + return nil, err | ||
| 124 | + } | ||
| 125 | + defer func() { | ||
| 126 | + transactionContext.RollbackTransaction() | ||
| 127 | + }() | ||
| 128 | + | ||
| 129 | + var ClientVersionRepository, _ = factory.CreateClientVersionRepository(transactionContext) | ||
| 130 | + var clientVersion *domain.ClientVersion | ||
| 131 | + if clientVersion, err = ClientVersionRepository.FindOne(common.ObjectToMap(request)); err != nil { | ||
| 132 | + return | ||
| 133 | + } | ||
| 134 | + if clientVersion, err = ClientVersionRepository.Remove(clientVersion); err != nil { | ||
| 135 | + return | ||
| 136 | + } | ||
| 137 | + rsp = clientVersion | ||
| 138 | + err = transactionContext.CommitTransaction() | ||
| 139 | + return | ||
| 140 | +} | ||
| 141 | + | ||
| 142 | +func (svr *ClientVersionService) ListClientVersion(header *protocol.RequestHeader, request *protocolx.ListClientVersionRequest) (rsp interface{}, err error) { | ||
| 143 | + var ( | ||
| 144 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 145 | + ) | ||
| 146 | + rsp = &protocolx.ListClientVersionResponse{} | ||
| 147 | + if err = request.ValidateCommand(); err != nil { | ||
| 148 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 149 | + return | ||
| 150 | + } | ||
| 151 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 152 | + log.Error(err) | ||
| 153 | + return nil, err | ||
| 154 | + } | ||
| 155 | + defer func() { | ||
| 156 | + transactionContext.RollbackTransaction() | ||
| 157 | + }() | ||
| 158 | + | ||
| 159 | + var ClientVersionRepository, _ = factory.CreateClientVersionRepository(transactionContext) | ||
| 160 | + var clientVersion []*domain.ClientVersion | ||
| 161 | + var total int64 | ||
| 162 | + if total, clientVersion, err = ClientVersionRepository.Find(common.ObjectToMap(request)); err != nil { | ||
| 163 | + return | ||
| 164 | + } | ||
| 165 | + rsp = map[string]interface{}{ | ||
| 166 | + "totalRow": total, | ||
| 167 | + "pageNumber": (request.Offset + request.Limit) / request.Limit, | ||
| 168 | + "list": utils.LoadCustomField(clientVersion, "Id", "ProjectName", "Version", "Title", "Remark", "CreateTime"), | ||
| 169 | + } | ||
| 170 | + err = transactionContext.CommitTransaction() | ||
| 171 | + return | ||
| 172 | +} | ||
| 173 | + | ||
| 174 | +func NewClientVersionService(options map[string]interface{}) *ClientVersionService { | ||
| 175 | + svr := &ClientVersionService{} | ||
| 176 | + return svr | ||
| 177 | +} |
| @@ -37,3 +37,11 @@ func CreateRoleRepository(transactionContext *transaction.TransactionContext) (d | @@ -37,3 +37,11 @@ func CreateRoleRepository(transactionContext *transaction.TransactionContext) (d | ||
| 37 | func CreateUserRepository(transactionContext *transaction.TransactionContext) (domain.UsersRepository, error) { | 37 | func CreateUserRepository(transactionContext *transaction.TransactionContext) (domain.UsersRepository, error) { |
| 38 | return repository.NewUserRepository(transactionContext) | 38 | return repository.NewUserRepository(transactionContext) |
| 39 | } | 39 | } |
| 40 | + | ||
| 41 | +func CreateClientVersionRepository(transactionContext *transaction.TransactionContext) (domain.ClientVersionRepository, error) { | ||
| 42 | + return repository.NewClientVersionRepository(transactionContext) | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +func CreateOperatorLogRepository(transactionContext *transaction.TransactionContext) (domain.OperatorLogRepository, error) { | ||
| 46 | + return repository.NewOperatorLogRepository(transactionContext) | ||
| 47 | +} |
pkg/application/operator_log/operator_log.go
0 → 100644
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/common" | ||
| 5 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | ||
| 10 | + protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/operator_log" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +type OperatorLogService struct { | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (svr *OperatorLogService) CreateOperatorLog(header *protocol.RequestHeader, request *protocolx.CreateOperatorLogRequest) (rsp interface{}, err error) { | ||
| 17 | + var ( | ||
| 18 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 19 | + ) | ||
| 20 | + rsp = &protocolx.CreateOperatorLogResponse{} | ||
| 21 | + if err = request.ValidateCommand(); err != nil { | ||
| 22 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 23 | + return | ||
| 24 | + } | ||
| 25 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 26 | + log.Error(err) | ||
| 27 | + return nil, err | ||
| 28 | + } | ||
| 29 | + defer func() { | ||
| 30 | + transactionContext.RollbackTransaction() | ||
| 31 | + }() | ||
| 32 | + newOperatorLog := &domain.OperatorLog{ | ||
| 33 | + Operator: request.Commiter, | ||
| 34 | + Code: request.Code, | ||
| 35 | + Content: request.Content, | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 39 | + if m, err := OperatorLogRepository.Save(newOperatorLog); err != nil { | ||
| 40 | + return nil, err | ||
| 41 | + } else { | ||
| 42 | + rsp = m | ||
| 43 | + } | ||
| 44 | + err = transactionContext.CommitTransaction() | ||
| 45 | + return | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +func (svr *OperatorLogService) UpdateOperatorLog(header *protocol.RequestHeader, request *protocolx.UpdateOperatorLogRequest) (rsp interface{}, err error) { | ||
| 49 | + var ( | ||
| 50 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 51 | + ) | ||
| 52 | + rsp = &protocolx.UpdateOperatorLogResponse{} | ||
| 53 | + if err = request.ValidateCommand(); err != nil { | ||
| 54 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 55 | + return | ||
| 56 | + } | ||
| 57 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 58 | + log.Error(err) | ||
| 59 | + return nil, err | ||
| 60 | + } | ||
| 61 | + defer func() { | ||
| 62 | + transactionContext.RollbackTransaction() | ||
| 63 | + }() | ||
| 64 | + | ||
| 65 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 66 | + var operatorLog *domain.OperatorLog | ||
| 67 | + if operatorLog, err = OperatorLogRepository.FindOne(common.ObjectToMap(request)); err != nil { | ||
| 68 | + return | ||
| 69 | + } | ||
| 70 | + if err = operatorLog.Update(common.ObjectToMap(request)); err != nil { | ||
| 71 | + return | ||
| 72 | + } | ||
| 73 | + if operatorLog, err = OperatorLogRepository.Save(operatorLog); err != nil { | ||
| 74 | + return | ||
| 75 | + } | ||
| 76 | + err = transactionContext.CommitTransaction() | ||
| 77 | + return | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +func (svr *OperatorLogService) GetOperatorLog(header *protocol.RequestHeader, request *protocolx.GetOperatorLogRequest) (rsp interface{}, err error) { | ||
| 81 | + var ( | ||
| 82 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 83 | + ) | ||
| 84 | + rsp = &protocolx.GetOperatorLogResponse{} | ||
| 85 | + if err = request.ValidateCommand(); err != nil { | ||
| 86 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 87 | + return | ||
| 88 | + } | ||
| 89 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 90 | + log.Error(err) | ||
| 91 | + return nil, err | ||
| 92 | + } | ||
| 93 | + defer func() { | ||
| 94 | + transactionContext.RollbackTransaction() | ||
| 95 | + }() | ||
| 96 | + | ||
| 97 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 98 | + var operatorLog *domain.OperatorLog | ||
| 99 | + if operatorLog, err = OperatorLogRepository.FindOne(common.ObjectToMap(request)); err != nil { | ||
| 100 | + return | ||
| 101 | + } | ||
| 102 | + rsp = operatorLog | ||
| 103 | + err = transactionContext.CommitTransaction() | ||
| 104 | + return | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | +func (svr *OperatorLogService) DeleteOperatorLog(header *protocol.RequestHeader, request *protocolx.DeleteOperatorLogRequest) (rsp interface{}, err error) { | ||
| 108 | + var ( | ||
| 109 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 110 | + ) | ||
| 111 | + rsp = &protocolx.DeleteOperatorLogResponse{} | ||
| 112 | + if err = request.ValidateCommand(); err != nil { | ||
| 113 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 114 | + return | ||
| 115 | + } | ||
| 116 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 117 | + log.Error(err) | ||
| 118 | + return nil, err | ||
| 119 | + } | ||
| 120 | + defer func() { | ||
| 121 | + transactionContext.RollbackTransaction() | ||
| 122 | + }() | ||
| 123 | + | ||
| 124 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 125 | + var operatorLog *domain.OperatorLog | ||
| 126 | + if operatorLog, err = OperatorLogRepository.FindOne(common.ObjectToMap(request)); err != nil { | ||
| 127 | + return | ||
| 128 | + } | ||
| 129 | + if operatorLog, err = OperatorLogRepository.Remove(operatorLog); err != nil { | ||
| 130 | + return | ||
| 131 | + } | ||
| 132 | + rsp = operatorLog | ||
| 133 | + err = transactionContext.CommitTransaction() | ||
| 134 | + return | ||
| 135 | +} | ||
| 136 | + | ||
| 137 | +func (svr *OperatorLogService) ListOperatorLog(header *protocol.RequestHeader, request *protocolx.ListOperatorLogRequest) (rsp interface{}, err error) { | ||
| 138 | + var ( | ||
| 139 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 140 | + ) | ||
| 141 | + rsp = &protocolx.ListOperatorLogResponse{} | ||
| 142 | + if err = request.ValidateCommand(); err != nil { | ||
| 143 | + err = protocol.NewCustomMessage(2, err.Error()) | ||
| 144 | + return | ||
| 145 | + } | ||
| 146 | + if err = transactionContext.StartTransaction(); err != nil { | ||
| 147 | + log.Error(err) | ||
| 148 | + return nil, err | ||
| 149 | + } | ||
| 150 | + defer func() { | ||
| 151 | + transactionContext.RollbackTransaction() | ||
| 152 | + }() | ||
| 153 | + | ||
| 154 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 155 | + var operatorLog []*domain.OperatorLog | ||
| 156 | + var total int64 | ||
| 157 | + if total, operatorLog, err = OperatorLogRepository.Find(common.ObjectToMap(request)); err != nil { | ||
| 158 | + return | ||
| 159 | + } | ||
| 160 | + rsp = map[string]interface{}{ | ||
| 161 | + "total": total, | ||
| 162 | + "list": utils.LoadCustomField(operatorLog, "Id", "Operator", "Content", "CreateTime"), | ||
| 163 | + } | ||
| 164 | + err = transactionContext.CommitTransaction() | ||
| 165 | + return | ||
| 166 | +} | ||
| 167 | + | ||
| 168 | +func NewOperatorLogService(options map[string]interface{}) *OperatorLogService { | ||
| 169 | + svr := &OperatorLogService{} | ||
| 170 | + return svr | ||
| 171 | +} |
| 1 | package project_module_files | 1 | package project_module_files |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "bytes" | ||
| 4 | "github.com/tiptok/gocomm/common" | 5 | "github.com/tiptok/gocomm/common" |
| 5 | "github.com/tiptok/gocomm/pkg/log" | 6 | "github.com/tiptok/gocomm/pkg/log" |
| 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| @@ -109,7 +110,25 @@ func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol. | @@ -109,7 +110,25 @@ func (svr *ProjectModuleFilesService) UpdateProjectModuleFiles(header *protocol. | ||
| 109 | } | 110 | } |
| 110 | // TODO:移动文件文件夹时pid变更,底下路径需要都变掉 | 111 | // TODO:移动文件文件夹时pid变更,底下路径需要都变掉 |
| 111 | 112 | ||
| 112 | - // TODO:变更记录 | 113 | + // 变更记录 |
| 114 | + var OperatorLogRepository, _ = factory.CreateOperatorLogRepository(transactionContext) | ||
| 115 | + //var UserRepository, _ = factory.CreateUserRepository(transactionContext) | ||
| 116 | + //user, _ := UserRepository.FindOne(map[string]interface{}{"id": header.UserId}) | ||
| 117 | + //if user == nil { | ||
| 118 | + // return | ||
| 119 | + //} | ||
| 120 | + var OpLog *domain.OperatorLog = &domain.OperatorLog{ | ||
| 121 | + UserId: header.UserId, | ||
| 122 | + Operator: header.UserName, | ||
| 123 | + Code: domain.LogCodeEditModuleFile, | ||
| 124 | + ResourceId: request.Id, | ||
| 125 | + Content: changeLog(request, projectModuleFiles), | ||
| 126 | + CreateTime: time.Now(), | ||
| 127 | + } | ||
| 128 | + if _, err = OperatorLogRepository.Save(OpLog); err != nil { | ||
| 129 | + return | ||
| 130 | + } | ||
| 131 | + | ||
| 113 | err = transactionContext.CommitTransaction() | 132 | err = transactionContext.CommitTransaction() |
| 114 | return | 133 | return |
| 115 | } | 134 | } |
| @@ -361,6 +380,19 @@ func traverse(list []*protocolx.ModuleFiles, file *domain.ProjectModuleFiles) { | @@ -361,6 +380,19 @@ func traverse(list []*protocolx.ModuleFiles, file *domain.ProjectModuleFiles) { | ||
| 361 | } | 380 | } |
| 362 | return | 381 | return |
| 363 | } | 382 | } |
| 383 | +func changeLog(request *protocolx.UpdateProjectModuleFilesRequest, old *domain.ProjectModuleFiles) string { | ||
| 384 | + buf := bytes.NewBuffer(nil) | ||
| 385 | + if len(request.FileName) > 0 { | ||
| 386 | + buf.WriteString(" 修改文件名为:" + request.FileName + "\n") | ||
| 387 | + } | ||
| 388 | + if len(request.Remark) > 0 { | ||
| 389 | + buf.WriteString(" 修改描述信息为:" + request.Remark + "\n") | ||
| 390 | + } | ||
| 391 | + if len(request.CodeBlock) > 0 { | ||
| 392 | + buf.WriteString(" 修改模板代码") | ||
| 393 | + } | ||
| 394 | + return buf.String() | ||
| 395 | +} | ||
| 364 | func NewProjectModuleFilesService(options map[string]interface{}) *ProjectModuleFilesService { | 396 | func NewProjectModuleFilesService(options map[string]interface{}) *ProjectModuleFilesService { |
| 365 | svr := &ProjectModuleFilesService{} | 397 | svr := &ProjectModuleFilesService{} |
| 366 | return svr | 398 | return svr |
pkg/constant/common.go
0 → 100644
| 1 | +package constant | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "os" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +const SERVICE_NAME = "godevp" | ||
| 8 | + | ||
| 9 | +var LOG_LEVEL = "debug" | ||
| 10 | +var LOG_File = "app.log" | ||
| 11 | + | ||
| 12 | +var MMM_SMS_SERVICE_HOST = "https://sms.fjmaimaimai.com:9897" | ||
| 13 | + | ||
| 14 | +//0:正式版 1:开发版 2:体验版 | ||
| 15 | +func init() { | ||
| 16 | + if os.Getenv("LOG_LEVEL") != "" { | ||
| 17 | + LOG_LEVEL = os.Getenv("LOG_LEVEL") | ||
| 18 | + } | ||
| 19 | +} |
pkg/domain/do_client_version.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +// ClientVersion | ||
| 6 | +type ClientVersion struct { | ||
| 7 | + // 唯一标识 | ||
| 8 | + Id int64 `json:"id"` | ||
| 9 | + // 提交人 | ||
| 10 | + Commiter int64 `json:"commiter"` | ||
| 11 | + // 项目名称 | ||
| 12 | + ProjectName string `json:"projectName"` | ||
| 13 | + // 版本号 | ||
| 14 | + Version string `json:"version"` | ||
| 15 | + // 标题 | ||
| 16 | + Title string `json:"title"` | ||
| 17 | + // 其他备注信息 | ||
| 18 | + Remark string `json:"remark"` | ||
| 19 | + // 客户端安装包信息 | ||
| 20 | + ClientPackageInfo []*ClientPackageInfo `json:"clientPackageInfo"` | ||
| 21 | + // 创建时间 | ||
| 22 | + CreateTime time.Time `json:"createTime"` | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +type ClientVersionRepository interface { | ||
| 26 | + Save(dm *ClientVersion) (*ClientVersion, error) | ||
| 27 | + Remove(dm *ClientVersion) (*ClientVersion, error) | ||
| 28 | + FindOne(queryOptions map[string]interface{}) (*ClientVersion, error) | ||
| 29 | + Find(queryOptions map[string]interface{}) (int64, []*ClientVersion, error) | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func (m *ClientVersion) Identify() interface{} { | ||
| 33 | + if m.Id == 0 { | ||
| 34 | + return nil | ||
| 35 | + } | ||
| 36 | + return m.Id | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +func (m *ClientVersion) Update(data map[string]interface{}) error { | ||
| 40 | + if projectName, ok := data["projectName"]; ok { | ||
| 41 | + m.ProjectName = projectName.(string) | ||
| 42 | + } | ||
| 43 | + if version, ok := data["version"]; ok { | ||
| 44 | + m.Version = version.(string) | ||
| 45 | + } | ||
| 46 | + if title, ok := data["title"]; ok { | ||
| 47 | + m.Title = title.(string) | ||
| 48 | + } | ||
| 49 | + if remark, ok := data["remark"]; ok { | ||
| 50 | + m.Remark = remark.(string) | ||
| 51 | + } | ||
| 52 | + if clientPackageInfo, ok := data["clientPackageInfo"]; ok { | ||
| 53 | + m.ClientPackageInfo = clientPackageInfo.([]*ClientPackageInfo) | ||
| 54 | + } | ||
| 55 | + return nil | ||
| 56 | +} |
pkg/domain/do_operator_log.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +const ( | ||
| 6 | + LogCodeEditModuleFile = "EditModuleFile" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +// OperatorLog | ||
| 10 | +type OperatorLog struct { | ||
| 11 | + // 唯一标识 | ||
| 12 | + Id int64 `json:"id"` | ||
| 13 | + // 用户编号 | ||
| 14 | + UserId int64 `json:"userId"` | ||
| 15 | + // 提交人 | ||
| 16 | + Operator string `json:"operator"` | ||
| 17 | + // 日志编号码 : EditModuleFile | ||
| 18 | + Code string `json:"code"` | ||
| 19 | + // 关联资源id | ||
| 20 | + ResourceId int64 `json:"resourceId"` | ||
| 21 | + // 变更内容 | ||
| 22 | + Content string `json:"content"` | ||
| 23 | + // 创建时间 | ||
| 24 | + CreateTime time.Time `json:"createTime"` | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +type OperatorLogRepository interface { | ||
| 28 | + Save(dm *OperatorLog) (*OperatorLog, error) | ||
| 29 | + Remove(dm *OperatorLog) (*OperatorLog, error) | ||
| 30 | + FindOne(queryOptions map[string]interface{}) (*OperatorLog, error) | ||
| 31 | + Find(queryOptions map[string]interface{}) (int64, []*OperatorLog, error) | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +func (m *OperatorLog) Identify() interface{} { | ||
| 35 | + if m.Id == 0 { | ||
| 36 | + return nil | ||
| 37 | + } | ||
| 38 | + return m.Id | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +func (m *OperatorLog) Update(data map[string]interface{}) error { | ||
| 42 | + return nil | ||
| 43 | +} |
pkg/domain/dv_client_package_info.go
0 → 100644
| @@ -34,6 +34,8 @@ func init() { | @@ -34,6 +34,8 @@ func init() { | ||
| 34 | (*models.Role)(nil), | 34 | (*models.Role)(nil), |
| 35 | (*models.RoleAccess)(nil), | 35 | (*models.RoleAccess)(nil), |
| 36 | (*models.Users)(nil), | 36 | (*models.Users)(nil), |
| 37 | + (*models.ClientVersion)(nil), | ||
| 38 | + (*models.OperatorLog)(nil), | ||
| 37 | } { | 39 | } { |
| 38 | err := DB.CreateTable(model, &orm.CreateTableOptions{ | 40 | err := DB.CreateTable(model, &orm.CreateTableOptions{ |
| 39 | Temp: false, | 41 | Temp: false, |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 5 | + "time" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +// ClientVersion | ||
| 9 | +type ClientVersion struct { | ||
| 10 | + tableName struct{} `pg:"client_version"` | ||
| 11 | + // 唯一标识 | ||
| 12 | + Id int64 | ||
| 13 | + // 提交人 | ||
| 14 | + Commiter int64 `pg:",use_zero"` | ||
| 15 | + // 项目名称 | ||
| 16 | + ProjectName string | ||
| 17 | + // 版本号 | ||
| 18 | + Version string | ||
| 19 | + // 标题 | ||
| 20 | + Title string | ||
| 21 | + // 其他备注信息 | ||
| 22 | + Remark string | ||
| 23 | + // 客户端安装包信息 | ||
| 24 | + ClientPackageInfo []*domain.ClientPackageInfo | ||
| 25 | + // 创建时间 | ||
| 26 | + CreateTime time.Time | ||
| 27 | +} |
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +// OperatorLog | ||
| 6 | +type OperatorLog struct { | ||
| 7 | + tableName struct{} `pg:"operator_log"` | ||
| 8 | + // 唯一标识 | ||
| 9 | + Id int64 | ||
| 10 | + // 用户编号 | ||
| 11 | + UserId int64 | ||
| 12 | + // 操作人 | ||
| 13 | + Operator string | ||
| 14 | + // 日志编号码 : EditModuleFile | ||
| 15 | + Code string | ||
| 16 | + // 关联资源id | ||
| 17 | + ResourceId int64 | ||
| 18 | + // 变更内容 | ||
| 19 | + Content string | ||
| 20 | + // 创建时间 | ||
| 21 | + CreateTime time.Time | ||
| 22 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/tiptok/gocomm/common" | ||
| 6 | + "github.com/tiptok/gocomm/pkg/cache" | ||
| 7 | + . "github.com/tiptok/gocomm/pkg/orm/pgx" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/constant" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 10 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/models" | ||
| 11 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +var ( | ||
| 15 | + cacheClientVersionIdKey = func(id int64) string { | ||
| 16 | + return fmt.Sprintf("%v:cache:ClientVersion:id:%v", constant.POSTGRESQL_DB_NAME, id) | ||
| 17 | + // 不需要执行缓存时,key设置为空 | ||
| 18 | + // return "" | ||
| 19 | + } | ||
| 20 | +) | ||
| 21 | + | ||
| 22 | +type ClientVersionRepository struct { | ||
| 23 | + *cache.CachedRepository | ||
| 24 | + transactionContext *transaction.TransactionContext | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +func (repository *ClientVersionRepository) Save(dm *domain.ClientVersion) (*domain.ClientVersion, error) { | ||
| 28 | + var ( | ||
| 29 | + err error | ||
| 30 | + m = &models.ClientVersion{} | ||
| 31 | + tx = repository.transactionContext.PgTx | ||
| 32 | + ) | ||
| 33 | + if err = common.GobModelTransform(m, dm); err != nil { | ||
| 34 | + return nil, err | ||
| 35 | + } | ||
| 36 | + if dm.Identify() == nil { | ||
| 37 | + if err = tx.Insert(m); err != nil { | ||
| 38 | + return nil, err | ||
| 39 | + } | ||
| 40 | + dm.Id = m.Id | ||
| 41 | + return dm, nil | ||
| 42 | + } | ||
| 43 | + queryFunc := func() (interface{}, error) { | ||
| 44 | + return nil, tx.Update(m) | ||
| 45 | + } | ||
| 46 | + if _, err = repository.Query(queryFunc, cacheClientVersionIdKey(dm.Id)); err != nil { | ||
| 47 | + return nil, err | ||
| 48 | + } | ||
| 49 | + return dm, nil | ||
| 50 | +} | ||
| 51 | + | ||
| 52 | +func (repository *ClientVersionRepository) Remove(ClientVersion *domain.ClientVersion) (*domain.ClientVersion, error) { | ||
| 53 | + var ( | ||
| 54 | + tx = repository.transactionContext.PgTx | ||
| 55 | + ClientVersionModel = &models.ClientVersion{Id: ClientVersion.Identify().(int64)} | ||
| 56 | + ) | ||
| 57 | + queryFunc := func() (interface{}, error) { | ||
| 58 | + return tx.Model(ClientVersionModel).Where("id = ?", ClientVersion.Id).Delete() | ||
| 59 | + } | ||
| 60 | + if _, err := repository.Query(queryFunc, cacheClientVersionIdKey(ClientVersion.Id)); err != nil { | ||
| 61 | + return ClientVersion, err | ||
| 62 | + } | ||
| 63 | + return ClientVersion, nil | ||
| 64 | +} | ||
| 65 | + | ||
| 66 | +func (repository *ClientVersionRepository) FindOne(queryOptions map[string]interface{}) (*domain.ClientVersion, error) { | ||
| 67 | + tx := repository.transactionContext.PgDd | ||
| 68 | + ClientVersionModel := new(models.ClientVersion) | ||
| 69 | + queryFunc := func() (interface{}, error) { | ||
| 70 | + query := NewQuery(tx.Model(ClientVersionModel), queryOptions) | ||
| 71 | + query.SetWhere("id = ?", "id") | ||
| 72 | + if err := query.First(); err != nil { | ||
| 73 | + return nil, fmt.Errorf("query row not found") | ||
| 74 | + } | ||
| 75 | + return ClientVersionModel, nil | ||
| 76 | + } | ||
| 77 | + var options []cache.QueryOption | ||
| 78 | + if _, ok := queryOptions["id"]; !ok { | ||
| 79 | + options = append(options, cache.WithNoCacheFlag()) | ||
| 80 | + } else { | ||
| 81 | + ClientVersionModel.Id = queryOptions["id"].(int64) | ||
| 82 | + } | ||
| 83 | + if err := repository.QueryCache(cacheClientVersionIdKey(ClientVersionModel.Id), ClientVersionModel, queryFunc, options...); err != nil { | ||
| 84 | + return nil, err | ||
| 85 | + } | ||
| 86 | + if ClientVersionModel.Id == 0 { | ||
| 87 | + return nil, fmt.Errorf("query row not found") | ||
| 88 | + } | ||
| 89 | + return repository.transformPgModelToDomainModel(ClientVersionModel) | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +func (repository *ClientVersionRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.ClientVersion, error) { | ||
| 93 | + tx := repository.transactionContext.PgTx | ||
| 94 | + var ClientVersionModels []*models.ClientVersion | ||
| 95 | + ClientVersions := make([]*domain.ClientVersion, 0) | ||
| 96 | + query := NewQuery(tx.Model(&ClientVersionModels), queryOptions). | ||
| 97 | + SetOrder("create_time", "sortByCreateTime"). | ||
| 98 | + SetOrder("update_time", "sortByUpdateTime"). | ||
| 99 | + SetLimit() | ||
| 100 | + var err error | ||
| 101 | + if query.AffectRow, err = query.SelectAndCount(); err != nil { | ||
| 102 | + return 0, ClientVersions, err | ||
| 103 | + } | ||
| 104 | + for _, ClientVersionModel := range ClientVersionModels { | ||
| 105 | + if ClientVersion, err := repository.transformPgModelToDomainModel(ClientVersionModel); err != nil { | ||
| 106 | + return 0, ClientVersions, err | ||
| 107 | + } else { | ||
| 108 | + ClientVersions = append(ClientVersions, ClientVersion) | ||
| 109 | + } | ||
| 110 | + } | ||
| 111 | + return int64(query.AffectRow), ClientVersions, nil | ||
| 112 | +} | ||
| 113 | + | ||
| 114 | +func (repository *ClientVersionRepository) transformPgModelToDomainModel(ClientVersionModel *models.ClientVersion) (*domain.ClientVersion, error) { | ||
| 115 | + m := &domain.ClientVersion{} | ||
| 116 | + err := common.GobModelTransform(m, ClientVersionModel) | ||
| 117 | + return m, err | ||
| 118 | +} | ||
| 119 | + | ||
| 120 | +func NewClientVersionRepository(transactionContext *transaction.TransactionContext) (*ClientVersionRepository, error) { | ||
| 121 | + if transactionContext == nil { | ||
| 122 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 123 | + } | ||
| 124 | + return &ClientVersionRepository{transactionContext: transactionContext, CachedRepository: cache.NewDefaultCachedRepository()}, nil | ||
| 125 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/tiptok/gocomm/common" | ||
| 6 | + "github.com/tiptok/gocomm/pkg/cache" | ||
| 7 | + . "github.com/tiptok/gocomm/pkg/orm/pgx" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/constant" | ||
| 9 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 10 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/models" | ||
| 11 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +var ( | ||
| 15 | + cacheOperatorLogIdKey = func(id int64) string { | ||
| 16 | + return fmt.Sprintf("%v:cache:OperatorLog:id:%v", constant.POSTGRESQL_DB_NAME, id) | ||
| 17 | + // 不需要执行缓存时,key设置为空 | ||
| 18 | + // return "" | ||
| 19 | + } | ||
| 20 | +) | ||
| 21 | + | ||
| 22 | +type OperatorLogRepository struct { | ||
| 23 | + *cache.CachedRepository | ||
| 24 | + transactionContext *transaction.TransactionContext | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +func (repository *OperatorLogRepository) Save(dm *domain.OperatorLog) (*domain.OperatorLog, error) { | ||
| 28 | + var ( | ||
| 29 | + err error | ||
| 30 | + m = &models.OperatorLog{} | ||
| 31 | + tx = repository.transactionContext.PgTx | ||
| 32 | + ) | ||
| 33 | + if err = common.GobModelTransform(m, dm); err != nil { | ||
| 34 | + return nil, err | ||
| 35 | + } | ||
| 36 | + if dm.Identify() == nil { | ||
| 37 | + if err = tx.Insert(m); err != nil { | ||
| 38 | + return nil, err | ||
| 39 | + } | ||
| 40 | + return dm, nil | ||
| 41 | + } | ||
| 42 | + queryFunc := func() (interface{}, error) { | ||
| 43 | + return nil, tx.Update(m) | ||
| 44 | + } | ||
| 45 | + if _, err = repository.Query(queryFunc, cacheOperatorLogIdKey(dm.Id)); err != nil { | ||
| 46 | + return nil, err | ||
| 47 | + } | ||
| 48 | + return dm, nil | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | +func (repository *OperatorLogRepository) Remove(OperatorLog *domain.OperatorLog) (*domain.OperatorLog, error) { | ||
| 52 | + var ( | ||
| 53 | + tx = repository.transactionContext.PgTx | ||
| 54 | + OperatorLogModel = &models.OperatorLog{Id: OperatorLog.Identify().(int64)} | ||
| 55 | + ) | ||
| 56 | + queryFunc := func() (interface{}, error) { | ||
| 57 | + return tx.Model(OperatorLogModel).Where("id = ?", OperatorLog.Id).Delete() | ||
| 58 | + } | ||
| 59 | + if _, err := repository.Query(queryFunc, cacheOperatorLogIdKey(OperatorLog.Id)); err != nil { | ||
| 60 | + return OperatorLog, err | ||
| 61 | + } | ||
| 62 | + return OperatorLog, nil | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +func (repository *OperatorLogRepository) FindOne(queryOptions map[string]interface{}) (*domain.OperatorLog, error) { | ||
| 66 | + tx := repository.transactionContext.PgDd | ||
| 67 | + OperatorLogModel := new(models.OperatorLog) | ||
| 68 | + queryFunc := func() (interface{}, error) { | ||
| 69 | + query := NewQuery(tx.Model(OperatorLogModel), queryOptions) | ||
| 70 | + query.SetWhere("id = ?", "id") | ||
| 71 | + if err := query.First(); err != nil { | ||
| 72 | + return nil, fmt.Errorf("query row not found") | ||
| 73 | + } | ||
| 74 | + return OperatorLogModel, nil | ||
| 75 | + } | ||
| 76 | + var options []cache.QueryOption | ||
| 77 | + if _, ok := queryOptions["id"]; !ok { | ||
| 78 | + options = append(options, cache.WithNoCacheFlag()) | ||
| 79 | + } else { | ||
| 80 | + OperatorLogModel.Id = queryOptions["id"].(int64) | ||
| 81 | + } | ||
| 82 | + if err := repository.QueryCache(cacheOperatorLogIdKey(OperatorLogModel.Id), OperatorLogModel, queryFunc, options...); err != nil { | ||
| 83 | + return nil, err | ||
| 84 | + } | ||
| 85 | + if OperatorLogModel.Id == 0 { | ||
| 86 | + return nil, fmt.Errorf("query row not found") | ||
| 87 | + } | ||
| 88 | + return repository.transformPgModelToDomainModel(OperatorLogModel) | ||
| 89 | +} | ||
| 90 | + | ||
| 91 | +func (repository *OperatorLogRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.OperatorLog, error) { | ||
| 92 | + tx := repository.transactionContext.PgTx | ||
| 93 | + var OperatorLogModels []*models.OperatorLog | ||
| 94 | + OperatorLogs := make([]*domain.OperatorLog, 0) | ||
| 95 | + query := NewQuery(tx.Model(&OperatorLogModels), queryOptions). | ||
| 96 | + SetOrder("create_time", "sortByCreateTime"). | ||
| 97 | + SetOrder("update_time", "sortByUpdateTime").SetLimit() | ||
| 98 | + | ||
| 99 | + query.SetWhere("resource_id=?", "resourceId") | ||
| 100 | + query.SetWhere("id<?", "lastId") | ||
| 101 | + query.SetOrder("id", "sortById").SetLimit() | ||
| 102 | + var err error | ||
| 103 | + if query.AffectRow, err = query.SelectAndCount(); err != nil { | ||
| 104 | + return 0, OperatorLogs, err | ||
| 105 | + } | ||
| 106 | + for _, OperatorLogModel := range OperatorLogModels { | ||
| 107 | + if OperatorLog, err := repository.transformPgModelToDomainModel(OperatorLogModel); err != nil { | ||
| 108 | + return 0, OperatorLogs, err | ||
| 109 | + } else { | ||
| 110 | + OperatorLogs = append(OperatorLogs, OperatorLog) | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + return int64(query.AffectRow), OperatorLogs, nil | ||
| 114 | +} | ||
| 115 | + | ||
| 116 | +func (repository *OperatorLogRepository) transformPgModelToDomainModel(OperatorLogModel *models.OperatorLog) (*domain.OperatorLog, error) { | ||
| 117 | + m := &domain.OperatorLog{} | ||
| 118 | + err := common.GobModelTransform(m, OperatorLogModel) | ||
| 119 | + return m, err | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | +func NewOperatorLogRepository(transactionContext *transaction.TransactionContext) (*OperatorLogRepository, error) { | ||
| 123 | + if transactionContext == nil { | ||
| 124 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 125 | + } | ||
| 126 | + return &OperatorLogRepository{transactionContext: transactionContext, CachedRepository: cache.NewDefaultCachedRepository()}, nil | ||
| 127 | +} |
| @@ -16,10 +16,14 @@ func init() { | @@ -16,10 +16,14 @@ func init() { | ||
| 16 | AllowCredentials: true, | 16 | AllowCredentials: true, |
| 17 | })) | 17 | })) |
| 18 | 18 | ||
| 19 | + beego.InsertFilter("/*", beego.BeforeExec, middleware.CreateRequstLogFilter()) | ||
| 20 | + beego.InsertFilter("/*", beego.AfterExec, middleware.CreateResponseLogFilter(), false) | ||
| 21 | + | ||
| 19 | beego.InsertFilter("/v1/auth/profile", beego.BeforeExec, middleware.CheckAuthorization) | 22 | beego.InsertFilter("/v1/auth/profile", beego.BeforeExec, middleware.CheckAuthorization) |
| 20 | beego.InsertFilter("/v1/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | 23 | beego.InsertFilter("/v1/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) |
| 21 | beego.InsertFilter("/v1/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | 24 | beego.InsertFilter("/v1/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) |
| 22 | beego.InsertFilter("/v1/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | 25 | beego.InsertFilter("/v1/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) |
| 26 | + beego.InsertFilter("/v1/client_version/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 23 | beego.InsertFilter("/v1/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | 27 | beego.InsertFilter("/v1/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) |
| 24 | beego.InsertFilter("/v1/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | 28 | beego.InsertFilter("/v1/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) |
| 25 | beego.InsertFilter("/v1/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) | 29 | beego.InsertFilter("/v1/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) |
| @@ -33,17 +33,24 @@ func (controller *BaseController) Resp(msg *protocol.ResponseMessage) { | @@ -33,17 +33,24 @@ func (controller *BaseController) Resp(msg *protocol.ResponseMessage) { | ||
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | func (controller BaseController) GetLimitInfo() (offset int, limit int) { | 35 | func (controller BaseController) GetLimitInfo() (offset int, limit int) { |
| 36 | - offset, _ = controller.GetInt("offset") | ||
| 37 | - limit, _ = controller.GetInt("limit") | 36 | + offset, _ = controller.GetInt("pageNumber") |
| 37 | + limit, _ = controller.GetInt("pageSize") | ||
| 38 | + if offset > 0 { | ||
| 39 | + offset = (offset - 1) * limit | ||
| 40 | + } | ||
| 38 | return | 41 | return |
| 39 | } | 42 | } |
| 40 | 43 | ||
| 41 | //获取请求头信息 | 44 | //获取请求头信息 |
| 42 | func (controller *BaseController) GetRequestHeader(ctx *context.Context) *protocol.RequestHeader { | 45 | func (controller *BaseController) GetRequestHeader(ctx *context.Context) *protocol.RequestHeader { |
| 43 | h := &protocol.RequestHeader{} | 46 | h := &protocol.RequestHeader{} |
| 44 | - if ctx.Input.GetData("x-mmm-id") != nil { | ||
| 45 | - v := ctx.Input.GetData("x-mmm-id") | 47 | + |
| 48 | + if v := ctx.Input.GetData("x-mmm-id"); v != nil { | ||
| 46 | h.UserId = int64(v.(int)) | 49 | h.UserId = int64(v.(int)) |
| 47 | } | 50 | } |
| 51 | + if v := ctx.Input.GetData("x-mmm-uname"); v != nil { | ||
| 52 | + h.UserName = v.(string) | ||
| 53 | + } | ||
| 54 | + | ||
| 48 | return h | 55 | return h |
| 49 | } | 56 | } |
pkg/port/beego/controllers/client_version.go
0 → 100644
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/client_version" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | ||
| 7 | + protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/client_version" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +type ClientVersionController struct { | ||
| 11 | + BaseController | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +// CreateClientVersion | ||
| 15 | +// CreateClientVersion execute command create ClientVersion | ||
| 16 | +func (controller *ClientVersionController) CreateClientVersion() { | ||
| 17 | + var ( | ||
| 18 | + msg *protocol.ResponseMessage | ||
| 19 | + svr = client_version.NewClientVersionService(nil) | ||
| 20 | + request *protocolx.CreateClientVersionRequest | ||
| 21 | + ) | ||
| 22 | + defer func() { | ||
| 23 | + controller.Resp(msg) | ||
| 24 | + }() | ||
| 25 | + if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 26 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 27 | + return | ||
| 28 | + } | ||
| 29 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 30 | + data, err := svr.CreateClientVersion(header, request) | ||
| 31 | + if err != nil { | ||
| 32 | + log.Error(err) | ||
| 33 | + } | ||
| 34 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +// UpdateClientVersion | ||
| 38 | +// UpdateClientVersion execute command update ClientVersion | ||
| 39 | +func (controller *ClientVersionController) UpdateClientVersion() { | ||
| 40 | + var ( | ||
| 41 | + msg *protocol.ResponseMessage | ||
| 42 | + svr = client_version.NewClientVersionService(nil) | ||
| 43 | + request = &protocolx.UpdateClientVersionRequest{} | ||
| 44 | + ) | ||
| 45 | + defer func() { | ||
| 46 | + controller.Resp(msg) | ||
| 47 | + }() | ||
| 48 | + request.Id, _ = controller.GetInt64(":clientVersionId") | ||
| 49 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 50 | + data, err := svr.UpdateClientVersion(header, request) | ||
| 51 | + if err != nil { | ||
| 52 | + log.Error(err) | ||
| 53 | + } | ||
| 54 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 55 | +} | ||
| 56 | + | ||
| 57 | +// GetClientVersion | ||
| 58 | +// GetClientVersion execute query get ClientVersion | ||
| 59 | +func (controller *ClientVersionController) GetClientVersion() { | ||
| 60 | + var ( | ||
| 61 | + msg *protocol.ResponseMessage | ||
| 62 | + svr = client_version.NewClientVersionService(nil) | ||
| 63 | + request = &protocolx.GetClientVersionRequest{} | ||
| 64 | + ) | ||
| 65 | + defer func() { | ||
| 66 | + controller.Resp(msg) | ||
| 67 | + }() | ||
| 68 | + request.Id, _ = controller.GetInt64(":clientVersionId") | ||
| 69 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 70 | + data, err := svr.GetClientVersion(header, request) | ||
| 71 | + if err != nil { | ||
| 72 | + log.Error(err) | ||
| 73 | + } | ||
| 74 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | +// DeleteClientVersion | ||
| 78 | +// DeleteClientVersion execute command delete ClientVersion | ||
| 79 | +func (controller *ClientVersionController) DeleteClientVersion() { | ||
| 80 | + var ( | ||
| 81 | + msg *protocol.ResponseMessage | ||
| 82 | + svr = client_version.NewClientVersionService(nil) | ||
| 83 | + request = &protocolx.DeleteClientVersionRequest{} | ||
| 84 | + ) | ||
| 85 | + defer func() { | ||
| 86 | + controller.Resp(msg) | ||
| 87 | + }() | ||
| 88 | + request.Id, _ = controller.GetInt64(":clientVersionId") | ||
| 89 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 90 | + data, err := svr.DeleteClientVersion(header, request) | ||
| 91 | + if err != nil { | ||
| 92 | + log.Error(err) | ||
| 93 | + } | ||
| 94 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 95 | +} | ||
| 96 | + | ||
| 97 | +// ListClientVersion | ||
| 98 | +// ListClientVersion execute query list ClientVersion | ||
| 99 | +func (controller *ClientVersionController) ListClientVersion() { | ||
| 100 | + var ( | ||
| 101 | + msg *protocol.ResponseMessage | ||
| 102 | + svr = client_version.NewClientVersionService(nil) | ||
| 103 | + request = &protocolx.ListClientVersionRequest{} | ||
| 104 | + ) | ||
| 105 | + defer func() { | ||
| 106 | + controller.Resp(msg) | ||
| 107 | + }() | ||
| 108 | + request.Offset, request.Limit = controller.GetLimitInfo() | ||
| 109 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 110 | + data, err := svr.ListClientVersion(header, request) | ||
| 111 | + if err != nil { | ||
| 112 | + log.Error(err) | ||
| 113 | + } | ||
| 114 | + msg = protocol.NewResponseMessageListData(data, err) | ||
| 115 | +} |
pkg/port/beego/controllers/operator_log.go
0 → 100644
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/operator_log" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | ||
| 7 | + protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/operator_log" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +type OperatorLogController struct { | ||
| 11 | + BaseController | ||
| 12 | +} | ||
| 13 | + | ||
| 14 | +// CreateOperatorLog | ||
| 15 | +// CreateOperatorLog execute command create OperatorLog | ||
| 16 | +func (controller *OperatorLogController) CreateOperatorLog() { | ||
| 17 | + var ( | ||
| 18 | + msg *protocol.ResponseMessage | ||
| 19 | + svr = operator_log.NewOperatorLogService(nil) | ||
| 20 | + request *protocolx.CreateOperatorLogRequest | ||
| 21 | + ) | ||
| 22 | + defer func() { | ||
| 23 | + controller.Resp(msg) | ||
| 24 | + }() | ||
| 25 | + if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 26 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 27 | + return | ||
| 28 | + } | ||
| 29 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 30 | + data, err := svr.CreateOperatorLog(header, request) | ||
| 31 | + if err != nil { | ||
| 32 | + log.Error(err) | ||
| 33 | + } | ||
| 34 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +// UpdateOperatorLog | ||
| 38 | +// UpdateOperatorLog execute command update OperatorLog | ||
| 39 | +func (controller *OperatorLogController) UpdateOperatorLog() { | ||
| 40 | + var ( | ||
| 41 | + msg *protocol.ResponseMessage | ||
| 42 | + svr = operator_log.NewOperatorLogService(nil) | ||
| 43 | + request *protocolx.UpdateOperatorLogRequest | ||
| 44 | + ) | ||
| 45 | + defer func() { | ||
| 46 | + controller.Resp(msg) | ||
| 47 | + }() | ||
| 48 | + if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 49 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 50 | + return | ||
| 51 | + } | ||
| 52 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 53 | + data, err := svr.UpdateOperatorLog(header, request) | ||
| 54 | + if err != nil { | ||
| 55 | + log.Error(err) | ||
| 56 | + } | ||
| 57 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 58 | +} | ||
| 59 | + | ||
| 60 | +// GetOperatorLog | ||
| 61 | +// GetOperatorLog execute query get OperatorLog | ||
| 62 | +func (controller *OperatorLogController) GetOperatorLog() { | ||
| 63 | + var ( | ||
| 64 | + msg *protocol.ResponseMessage | ||
| 65 | + svr = operator_log.NewOperatorLogService(nil) | ||
| 66 | + request *protocolx.GetOperatorLogRequest | ||
| 67 | + ) | ||
| 68 | + defer func() { | ||
| 69 | + controller.Resp(msg) | ||
| 70 | + }() | ||
| 71 | + if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 72 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 73 | + return | ||
| 74 | + } | ||
| 75 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 76 | + data, err := svr.GetOperatorLog(header, request) | ||
| 77 | + if err != nil { | ||
| 78 | + log.Error(err) | ||
| 79 | + } | ||
| 80 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 81 | +} | ||
| 82 | + | ||
| 83 | +// DeleteOperatorLog | ||
| 84 | +// DeleteOperatorLog execute command delete OperatorLog | ||
| 85 | +func (controller *OperatorLogController) DeleteOperatorLog() { | ||
| 86 | + var ( | ||
| 87 | + msg *protocol.ResponseMessage | ||
| 88 | + svr = operator_log.NewOperatorLogService(nil) | ||
| 89 | + request *protocolx.DeleteOperatorLogRequest | ||
| 90 | + ) | ||
| 91 | + defer func() { | ||
| 92 | + controller.Resp(msg) | ||
| 93 | + }() | ||
| 94 | + if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 95 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 96 | + return | ||
| 97 | + } | ||
| 98 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 99 | + data, err := svr.DeleteOperatorLog(header, request) | ||
| 100 | + if err != nil { | ||
| 101 | + log.Error(err) | ||
| 102 | + } | ||
| 103 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 104 | +} | ||
| 105 | + | ||
| 106 | +// ListOperatorLog | ||
| 107 | +// ListOperatorLog execute query list OperatorLog | ||
| 108 | +func (controller *OperatorLogController) ListOperatorLog() { | ||
| 109 | + var ( | ||
| 110 | + msg *protocol.ResponseMessage | ||
| 111 | + svr = operator_log.NewOperatorLogService(nil) | ||
| 112 | + request = &protocolx.ListOperatorLogRequest{} | ||
| 113 | + ) | ||
| 114 | + defer func() { | ||
| 115 | + controller.Resp(msg) | ||
| 116 | + }() | ||
| 117 | + //if err := controller.JsonUnmarshal(&request); err != nil { | ||
| 118 | + // msg = protocol.NewResponseMessage(2,err.Error()) | ||
| 119 | + // return | ||
| 120 | + //} | ||
| 121 | + request.Offset, request.Limit = controller.GetLimitInfo() | ||
| 122 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 123 | + data, err := svr.ListOperatorLog(header, request) | ||
| 124 | + if err != nil { | ||
| 125 | + log.Error(err) | ||
| 126 | + } | ||
| 127 | + msg = protocol.NewResponseMessageData(data, err) | ||
| 128 | +} |
| 1 | package middleware | 1 | package middleware |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "encoding/json" | ||
| 4 | "errors" | 5 | "errors" |
| 6 | + "fmt" | ||
| 5 | "github.com/astaxie/beego/context" | 7 | "github.com/astaxie/beego/context" |
| 6 | "github.com/tiptok/gocomm/common" | 8 | "github.com/tiptok/gocomm/common" |
| 9 | + "github.com/tiptok/gocomm/pkg/log" | ||
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/cachex" | 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/cachex" |
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 9 | "strconv" | 12 | "strconv" |
| 10 | "strings" | 13 | "strings" |
| 14 | + "time" | ||
| 11 | ) | 15 | ) |
| 12 | 16 | ||
| 13 | var ( | 17 | var ( |
| @@ -43,6 +47,7 @@ func CheckAuthorization(ctx *context.Context) { | @@ -43,6 +47,7 @@ func CheckAuthorization(ctx *context.Context) { | ||
| 43 | } | 47 | } |
| 44 | userId, _ := strconv.Atoi(claim.Username) | 48 | userId, _ := strconv.Atoi(claim.Username) |
| 45 | ctx.Input.SetData("x-mmm-id", userId) | 49 | ctx.Input.SetData("x-mmm-id", userId) |
| 50 | + ctx.Input.SetData("x-mmm-uname", claim.AddData["UserName"]) | ||
| 46 | return | 51 | return |
| 47 | } | 52 | } |
| 48 | 53 | ||
| @@ -92,3 +97,26 @@ func InspectRoleAccess(parentObject string, skipUrl ...string) func(*context.Con | @@ -92,3 +97,26 @@ func InspectRoleAccess(parentObject string, skipUrl ...string) func(*context.Con | ||
| 92 | CheckRoleAccess(c, c.Input.URL(), c.Input.Method()) | 97 | CheckRoleAccess(c, c.Input.URL(), c.Input.Method()) |
| 93 | } | 98 | } |
| 94 | } | 99 | } |
| 100 | + | ||
| 101 | +func CreateRequstLogFilter() func(ctx *context.Context) { | ||
| 102 | + return func(ctx *context.Context) { | ||
| 103 | + requestId := fmt.Sprintf("%v.%v.%v ", ctx.Input.Method(), ctx.Input.URI(), time.Now().UnixNano()) | ||
| 104 | + ctx.Request.Header.Add("requestId", requestId) | ||
| 105 | + var body string = "{}" | ||
| 106 | + if ctx.Input.GetData("requestBody") != nil { | ||
| 107 | + body = string(ctx.Input.GetData("requestBody").([]byte)) | ||
| 108 | + } | ||
| 109 | + log.Debug(fmt.Sprintf("====>Recv RequestId:%s \nBodyData:%s", requestId, body)) | ||
| 110 | + } | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +func CreateResponseLogFilter() func(ctx *context.Context) { | ||
| 114 | + return func(ctx *context.Context) { | ||
| 115 | + requestId := ctx.Request.Header.Get("requestId") | ||
| 116 | + body, _ := json.Marshal(ctx.Input.GetData("outputData")) | ||
| 117 | + if len(body) > 1000 { | ||
| 118 | + body = body[:1000] | ||
| 119 | + } | ||
| 120 | + log.Debug(fmt.Sprintf("<====Send User:%v RequestId:%v BodyData:%s", ctx.Input.GetData("x-mmm-id"), requestId, body)) | ||
| 121 | + } | ||
| 122 | +} |
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + beego.Router("/v1/client_version/", &controllers.ClientVersionController{}, "POST:CreateClientVersion") | ||
| 10 | + beego.Router("/v1/client_version/:clientVersionId", &controllers.ClientVersionController{}, "PUT:UpdateClientVersion") | ||
| 11 | + beego.Router("/v1/client_version/:clientVersionId", &controllers.ClientVersionController{}, "GET:GetClientVersion") | ||
| 12 | + beego.Router("/v1/client_version/:clientVersionId", &controllers.ClientVersionController{}, "DELETE:DeleteClientVersion") | ||
| 13 | + beego.Router("/v1/client_version/", &controllers.ClientVersionController{}, "GET:ListClientVersion") | ||
| 14 | +} |
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/port/beego/controllers" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + //beego.Router("/v1/operator_log/", &controllers.OperatorLogController{}, "POST:CreateOperatorLog") | ||
| 10 | + //beego.Router("/v1/operator_log/:operatorLogId", &controllers.OperatorLogController{}, "PUT:UpdateOperatorLog") | ||
| 11 | + //beego.Router("/v1/operator_log/:operatorLogId", &controllers.OperatorLogController{}, "GET:GetOperatorLog") | ||
| 12 | + //beego.Router("/v1/operator_log/:operatorLogId", &controllers.OperatorLogController{}, "DELETE:DeleteOperatorLog") | ||
| 13 | + beego.Router("/v1/operator_log/", &controllers.OperatorLogController{}, "GET:ListOperatorLog") | ||
| 14 | +} |
pkg/port/beego/routers/static_router.go
0 → 100644
| 1 | package auth | 1 | package auth |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "errors" | ||
| 4 | "fmt" | 5 | "fmt" |
| 5 | "github.com/astaxie/beego/validation" | 6 | "github.com/astaxie/beego/validation" |
| 6 | ) | 7 | ) |
| 7 | 8 | ||
| 8 | type ChangePasswordRequest struct { | 9 | type ChangePasswordRequest struct { |
| 10 | + Phone string `json:"phone" valid:"Required"` | ||
| 11 | + OldPwd string `json:"oldPassword" valid:"Required"` | ||
| 12 | + NewPwd string `json:"newPassword" valid:"Required"` | ||
| 9 | } | 13 | } |
| 10 | 14 | ||
| 11 | func (ChangePasswordRequest *ChangePasswordRequest) ValidateCommand() error { | 15 | func (ChangePasswordRequest *ChangePasswordRequest) ValidateCommand() error { |
| @@ -14,6 +18,9 @@ func (ChangePasswordRequest *ChangePasswordRequest) ValidateCommand() error { | @@ -14,6 +18,9 @@ func (ChangePasswordRequest *ChangePasswordRequest) ValidateCommand() error { | ||
| 14 | if err != nil { | 18 | if err != nil { |
| 15 | return err | 19 | return err |
| 16 | } | 20 | } |
| 21 | + if ChangePasswordRequest.OldPwd == ChangePasswordRequest.NewPwd { | ||
| 22 | + return errors.New("新旧密码不能相同") | ||
| 23 | + } | ||
| 17 | if !b { | 24 | if !b { |
| 18 | for _, validErr := range valid.Errors { | 25 | for _, validErr := range valid.Errors { |
| 19 | return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | 26 | return fmt.Errorf("%s %s", validErr.Key, validErr.Message) |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type CreateClientVersionRequest struct { | ||
| 10 | + // 提交人 | ||
| 11 | + //Commiter int64 `json:"commiter,omitempty"` | ||
| 12 | + // 项目名称 | ||
| 13 | + ProjectName string `json:"projectName,omitempty"` | ||
| 14 | + // 版本号 | ||
| 15 | + Version string `json:"version,omitempty"` | ||
| 16 | + // 标题 | ||
| 17 | + Title string `json:"title,omitempty"` | ||
| 18 | + // 其他备注信息 | ||
| 19 | + Remark string `json:"remark,omitempty"` | ||
| 20 | + // 客户端安装包信息 | ||
| 21 | + ClientPackageInfo []*domain.ClientPackageInfo `json:"clientPackageInfo,omitempty"` | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (CreateClientVersionRequest *CreateClientVersionRequest) ValidateCommand() error { | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + b, err := valid.Valid(CreateClientVersionRequest) | ||
| 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 client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type CreateClientVersionResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (CreateClientVersionResponse *CreateClientVersionResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(CreateClientVersionResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type DeleteClientVersionRequest struct { | ||
| 9 | + // 唯一标识 | ||
| 10 | + Id int64 `json:"id,omitempty"` | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (DeleteClientVersionRequest *DeleteClientVersionRequest) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(DeleteClientVersionRequest) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type DeleteClientVersionResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (DeleteClientVersionResponse *DeleteClientVersionResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(DeleteClientVersionResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type UpdateClientVersionRequest struct { | ||
| 10 | + Id int64 `json:"-"` | ||
| 11 | + // 提交人 | ||
| 12 | + Commiter int64 `json:"commiter,omitempty"` | ||
| 13 | + // 项目名称 | ||
| 14 | + ProjectName int64 `json:"projectName,omitempty"` | ||
| 15 | + // 版本号 | ||
| 16 | + Version string `json:"version,omitempty"` | ||
| 17 | + // 标题 | ||
| 18 | + Title string `json:"title,omitempty"` | ||
| 19 | + // 其他备注信息 | ||
| 20 | + Remark string `json:"remark,omitempty"` | ||
| 21 | + // 客户端安装包信息 | ||
| 22 | + ClientPackageInfo []*domain.ClientPackageInfo `json:"clientPackageInfo,omitempty"` | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +func (UpdateClientVersionRequest *UpdateClientVersionRequest) ValidateCommand() error { | ||
| 26 | + valid := validation.Validation{} | ||
| 27 | + b, err := valid.Valid(UpdateClientVersionRequest) | ||
| 28 | + if err != nil { | ||
| 29 | + return err | ||
| 30 | + } | ||
| 31 | + if !b { | ||
| 32 | + for _, validErr := range valid.Errors { | ||
| 33 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | + return nil | ||
| 37 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type UpdateClientVersionResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (UpdateClientVersionResponse *UpdateClientVersionResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(UpdateClientVersionResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type GetClientVersionRequest struct { | ||
| 9 | + // 唯一标识 | ||
| 10 | + Id int64 `json:"id,omitempty" valid:"Required"` | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (GetClientVersionRequest *GetClientVersionRequest) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(GetClientVersionRequest) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type GetClientVersionResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (GetClientVersionResponse *GetClientVersionResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(GetClientVersionResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type ListClientVersionRequest struct { | ||
| 9 | + Offset int `json:"offset"` | ||
| 10 | + Limit int `json:"limit"` | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (ListClientVersionRequest *ListClientVersionRequest) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(ListClientVersionRequest) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| 1 | +package client_version | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type ListClientVersionResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (ListClientVersionResponse *ListClientVersionResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(ListClientVersionResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type CreateOperatorLogRequest struct { | ||
| 9 | + // 提交人 | ||
| 10 | + Commiter string `json:"commiter,omitempty"` | ||
| 11 | + // 日志编号码 : EditModuleFile | ||
| 12 | + Code string `json:"code,omitempty"` | ||
| 13 | + // 变更内容 | ||
| 14 | + Content string `json:"content,omitempty"` | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (CreateOperatorLogRequest *CreateOperatorLogRequest) ValidateCommand() error { | ||
| 18 | + valid := validation.Validation{} | ||
| 19 | + b, err := valid.Valid(CreateOperatorLogRequest) | ||
| 20 | + if err != nil { | ||
| 21 | + return err | ||
| 22 | + } | ||
| 23 | + if !b { | ||
| 24 | + for _, validErr := range valid.Errors { | ||
| 25 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | + return nil | ||
| 29 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type CreateOperatorLogResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (CreateOperatorLogResponse *CreateOperatorLogResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(CreateOperatorLogResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type DeleteOperatorLogRequest struct { | ||
| 9 | + // 唯一标识 | ||
| 10 | + Id int64 `json:"id,omitempty"` | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (DeleteOperatorLogRequest *DeleteOperatorLogRequest) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(DeleteOperatorLogRequest) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type DeleteOperatorLogResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (DeleteOperatorLogResponse *DeleteOperatorLogResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(DeleteOperatorLogResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type UpdateOperatorLogRequest struct { | ||
| 9 | + // 用户编号 | ||
| 10 | + UserId int64 `json:"userId,omitempty"` | ||
| 11 | + // 提交人 | ||
| 12 | + Commiter string `json:"commiter,omitempty"` | ||
| 13 | + // 日志编号码 : EditModuleFile | ||
| 14 | + Code string `json:"code,omitempty"` | ||
| 15 | + // 关联资源id | ||
| 16 | + ResourceId int64 `json:"resourceId,omitempty"` | ||
| 17 | + // 变更内容 | ||
| 18 | + Content string `json:"content,omitempty"` | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | +func (UpdateOperatorLogRequest *UpdateOperatorLogRequest) ValidateCommand() error { | ||
| 22 | + valid := validation.Validation{} | ||
| 23 | + b, err := valid.Valid(UpdateOperatorLogRequest) | ||
| 24 | + if err != nil { | ||
| 25 | + return err | ||
| 26 | + } | ||
| 27 | + if !b { | ||
| 28 | + for _, validErr := range valid.Errors { | ||
| 29 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 30 | + } | ||
| 31 | + } | ||
| 32 | + return nil | ||
| 33 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type UpdateOperatorLogResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (UpdateOperatorLogResponse *UpdateOperatorLogResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(UpdateOperatorLogResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type GetOperatorLogRequest struct { | ||
| 9 | + // 唯一标识 | ||
| 10 | + Id int64 `json:"id,omitempty"` | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (GetOperatorLogRequest *GetOperatorLogRequest) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(GetOperatorLogRequest) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type GetOperatorLogResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (GetOperatorLogResponse *GetOperatorLogResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(GetOperatorLogResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type ListOperatorLogRequest struct { | ||
| 9 | + SortById string `json:"sortById,omitempty"` | ||
| 10 | + LastId int64 `json:"lastId,omitempty"` | ||
| 11 | + ResourceId int64 `json:"resourceId,omitempty"` | ||
| 12 | + Offset int `json:"offset"` | ||
| 13 | + Limit int `json:"limit"` | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (ListOperatorLogRequest *ListOperatorLogRequest) ValidateCommand() error { | ||
| 17 | + valid := validation.Validation{} | ||
| 18 | + b, err := valid.Valid(ListOperatorLogRequest) | ||
| 19 | + ListOperatorLogRequest.SortById = "DESC" | ||
| 20 | + if err != nil { | ||
| 21 | + return err | ||
| 22 | + } | ||
| 23 | + if !b { | ||
| 24 | + for _, validErr := range valid.Errors { | ||
| 25 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 26 | + } | ||
| 27 | + } | ||
| 28 | + return nil | ||
| 29 | +} |
| 1 | +package operator_log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type ListOperatorLogResponse struct { | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func (ListOperatorLogResponse *ListOperatorLogResponse) ValidateCommand() error { | ||
| 12 | + valid := validation.Validation{} | ||
| 13 | + b, err := valid.Valid(ListOperatorLogResponse) | ||
| 14 | + if err != nil { | ||
| 15 | + return err | ||
| 16 | + } | ||
| 17 | + if !b { | ||
| 18 | + for _, validErr := range valid.Errors { | ||
| 19 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + return nil | ||
| 23 | +} |
-
请 注册 或 登录 后发表评论