正在显示
10 个修改的文件
包含
343 行增加
和
1 行删除
| @@ -165,3 +165,11 @@ func CreateRewardStandardRepository(options map[string]interface{}) (domain.Rewa | @@ -165,3 +165,11 @@ func CreateRewardStandardRepository(options map[string]interface{}) (domain.Rewa | ||
| 165 | } | 165 | } |
| 166 | return repository.NewRewardStandardRepository(transactionContext) | 166 | return repository.NewRewardStandardRepository(transactionContext) |
| 167 | } | 167 | } |
| 168 | + | ||
| 169 | +func CreateRewardRuleRepository(options map[string]interface{}) (domain.RewardRuleRepository, error) { | ||
| 170 | + var transactionContext *pg.TransactionContext | ||
| 171 | + if value, ok := options["transactionContext"]; ok { | ||
| 172 | + transactionContext = value.(*pg.TransactionContext) | ||
| 173 | + } | ||
| 174 | + return repository.NewRewardRuleRepository(transactionContext) | ||
| 175 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +type SaveRewardRuleCommand struct { | ||
| 4 | + // RewardTag string `json:"rewardTag"` | ||
| 5 | + RewardNum int `json:"rewardNum"` | ||
| 6 | + RewardAmount string `json:"rewardAmount"` | ||
| 7 | + // FaultTag string `json:"faultTag"` | ||
| 8 | + FaultNum int `json:"faultNum"` | ||
| 9 | + FaultAmount string `json:"faultAmount"` | ||
| 10 | + Remark string `json:"remark"` | ||
| 11 | +} |
| @@ -268,3 +268,91 @@ func (srv RewardStandardService) ListRewardStandard(param *query.ListRewardStand | @@ -268,3 +268,91 @@ func (srv RewardStandardService) ListRewardStandard(param *query.ListRewardStand | ||
| 268 | } | 268 | } |
| 269 | return cnt, listResult, nil | 269 | return cnt, listResult, nil |
| 270 | } | 270 | } |
| 271 | + | ||
| 272 | +//SaveRewardRule 保存奖惩规则 | ||
| 273 | +func (srv RewardStandardService) SaveRewardRule(operateInfo *domain.OperateInfo, param *command.SaveRewardRuleCommand) (*command.SaveRewardRuleCommand, error) { | ||
| 274 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 275 | + if err != nil { | ||
| 276 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 277 | + } | ||
| 278 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 279 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 280 | + } | ||
| 281 | + defer func() { | ||
| 282 | + transactionContext.RollbackTransaction() | ||
| 283 | + }() | ||
| 284 | + rewardRuleRepo, _ := factory.CreateRewardRuleRepository(map[string]interface{}{ | ||
| 285 | + "transactionContext": transactionContext, | ||
| 286 | + }) | ||
| 287 | + _, ruleList, err := rewardRuleRepo.Find(map[string]interface{}{ | ||
| 288 | + "companyId": operateInfo.CompanyId, | ||
| 289 | + }) | ||
| 290 | + if err != nil { | ||
| 291 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 292 | + } | ||
| 293 | + var newRewardRule *domain.RewardRule | ||
| 294 | + if len(ruleList) > 0 { | ||
| 295 | + newRewardRule = ruleList[0] | ||
| 296 | + } else { | ||
| 297 | + newRewardRule = &domain.RewardRule{ | ||
| 298 | + CreatedAt: time.Now(), | ||
| 299 | + CompanyId: operateInfo.CompanyId, | ||
| 300 | + OrgId: operateInfo.OrgId, | ||
| 301 | + FaultTag: ">", | ||
| 302 | + RewardTag: ">", | ||
| 303 | + } | ||
| 304 | + } | ||
| 305 | + newRewardRule.UpdatedAt = time.Now() | ||
| 306 | + newRewardRule.FaultAmount = param.FaultAmount | ||
| 307 | + newRewardRule.FaultNum = param.FaultNum | ||
| 308 | + newRewardRule.RewardAmount = param.RewardAmount | ||
| 309 | + newRewardRule.RewardNum = param.RewardNum | ||
| 310 | + newRewardRule.Remark = param.Remark | ||
| 311 | + _, err = rewardRuleRepo.Save(newRewardRule) | ||
| 312 | + if err != nil { | ||
| 313 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 314 | + } | ||
| 315 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 316 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 317 | + } | ||
| 318 | + return param, err | ||
| 319 | +} | ||
| 320 | + | ||
| 321 | +//GetRewardRule 获取奖惩规则 | ||
| 322 | +func (srv RewardStandardService) GetRewardRule(operateInfo *domain.OperateInfo) (*dto.RewardRuleInfo, error) { | ||
| 323 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 324 | + if err != nil { | ||
| 325 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 326 | + } | ||
| 327 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 328 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 329 | + } | ||
| 330 | + defer func() { | ||
| 331 | + transactionContext.RollbackTransaction() | ||
| 332 | + }() | ||
| 333 | + rewardRuleRepo, _ := factory.CreateRewardRuleRepository(map[string]interface{}{ | ||
| 334 | + "transactionContext": transactionContext, | ||
| 335 | + }) | ||
| 336 | + _, ruleList, err := rewardRuleRepo.Find(map[string]interface{}{ | ||
| 337 | + "companyId": operateInfo.CompanyId, | ||
| 338 | + }) | ||
| 339 | + if err != nil { | ||
| 340 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 341 | + } | ||
| 342 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 343 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 344 | + } | ||
| 345 | + var newRewardRule *dto.RewardRuleInfo | ||
| 346 | + if len(ruleList) > 0 { | ||
| 347 | + newRewardRule = &dto.RewardRuleInfo{ | ||
| 348 | + RewardNum: ruleList[0].RewardNum, | ||
| 349 | + RewardAmount: ruleList[0].RewardAmount, | ||
| 350 | + FaultNum: ruleList[0].FaultNum, | ||
| 351 | + FaultAmount: ruleList[0].RewardAmount, | ||
| 352 | + Remark: ruleList[0].Remark, | ||
| 353 | + } | ||
| 354 | + } else { | ||
| 355 | + newRewardRule = &dto.RewardRuleInfo{} | ||
| 356 | + } | ||
| 357 | + return newRewardRule, nil | ||
| 358 | +} |
| 1 | package domain | 1 | package domain |
| 2 | 2 | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 3 | //RewardStandard 奖惩规则 | 5 | //RewardStandard 奖惩规则 |
| 4 | type RewardRule struct { | 6 | type RewardRule struct { |
| 7 | + Id int `json:"id"` //奖惩规则id | ||
| 8 | + CompanyId int `json:"companyId"` //企业id | ||
| 9 | + OrgId int `json:"orgId"` //组织ID | ||
| 10 | + RewardTag string `json:"rewardTag"` | ||
| 11 | + RewardNum int `json:"rewardNum"` | ||
| 12 | + RewardAmount string `json:"rewardAmount"` | ||
| 13 | + FaultTag string `json:"faultTag"` | ||
| 14 | + FaultNum int `json:"faultNum"` | ||
| 15 | + FaultAmount string `json:"faultAmount"` | ||
| 16 | + Remark string `json:"remark"` | ||
| 17 | + CreatedAt time.Time | ||
| 18 | + UpdatedAt time.Time | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | +type RewardRuleRepository interface { | ||
| 22 | + Save(param *RewardRule) (*RewardRule, error) | ||
| 23 | + FindOne(queryOptions map[string]interface{}) (*RewardRule, error) | ||
| 24 | + Find(queryOptions map[string]interface{}) (int64, []*RewardRule, error) | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +func (m *RewardRule) ValidRewardTag() bool { | ||
| 28 | + switch m.FaultTag { | ||
| 29 | + case ">": | ||
| 30 | + default: | ||
| 31 | + return false | ||
| 32 | + } | ||
| 33 | + return true | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +func (m *RewardRule) ValidFaultTag() bool { | ||
| 37 | + switch m.FaultTag { | ||
| 38 | + case ">": | ||
| 39 | + default: | ||
| 40 | + return false | ||
| 41 | + } | ||
| 42 | + return true | ||
| 5 | } | 43 | } |
| @@ -52,6 +52,7 @@ func init() { | @@ -52,6 +52,7 @@ func init() { | ||
| 52 | (*models.ProductMaterialGroup)(nil), | 52 | (*models.ProductMaterialGroup)(nil), |
| 53 | (*models.ProductMaterial)(nil), | 53 | (*models.ProductMaterial)(nil), |
| 54 | (*models.RewardStandard)(nil), | 54 | (*models.RewardStandard)(nil), |
| 55 | + (*models.RewardRule)(nil), | ||
| 55 | } { | 56 | } { |
| 56 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ | 57 | err := DB.Model(model).CreateTable(&orm.CreateTableOptions{ |
| 57 | Temp: false, | 58 | Temp: false, |
pkg/infrastructure/pg/models/reward_rule.go
0 → 100644
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "time" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +//RewardRule 奖惩规则 | ||
| 8 | +type RewardRule struct { | ||
| 9 | + tableName string `pg:"manufacture.reward_rule,alias:reward_rule"` | ||
| 10 | + Id int `pg:"pk:id"` //奖惩标准 id | ||
| 11 | + CompanyId int `comment:"企业id"` // 企业id | ||
| 12 | + OrgId int `comment:"组织ID"` // 组织ID | ||
| 13 | + RewardTag string | ||
| 14 | + RewardNum int | ||
| 15 | + RewardAmount string | ||
| 16 | + FaultTag string | ||
| 17 | + FaultNum int | ||
| 18 | + FaultAmount string | ||
| 19 | + Remark string | ||
| 20 | + CreatedAt time.Time | ||
| 21 | + UpdatedAt time.Time | ||
| 22 | +} |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 8 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" | ||
| 9 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/pg/models" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type RewardRuleRepository struct { | ||
| 13 | + transactionContext *pgTransaction.TransactionContext | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +var _ domain.RewardRuleRepository = (*RewardRuleRepository)(nil) | ||
| 17 | + | ||
| 18 | +func NewRewardRuleRepository(transactionContext *pgTransaction.TransactionContext) (*RewardRuleRepository, error) { | ||
| 19 | + if transactionContext == nil { | ||
| 20 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 21 | + } else { | ||
| 22 | + return &RewardRuleRepository{ | ||
| 23 | + transactionContext: transactionContext, | ||
| 24 | + }, nil | ||
| 25 | + } | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// func (repo *RewardStandardRepository) nextIdentify() (int64, error) { | ||
| 29 | +// IdWorker, err := snowflake.NewIdWorker(1) | ||
| 30 | +// if err != nil { | ||
| 31 | +// return 0, err | ||
| 32 | +// } | ||
| 33 | +// id, err := IdWorker.NextId() | ||
| 34 | +// return id, err | ||
| 35 | +// } | ||
| 36 | + | ||
| 37 | +func (repo *RewardRuleRepository) Save(param *domain.RewardRule) (*domain.RewardRule, error) { | ||
| 38 | + m := models.RewardRule{ | ||
| 39 | + Id: param.Id, | ||
| 40 | + CompanyId: param.CompanyId, | ||
| 41 | + OrgId: param.OrgId, | ||
| 42 | + RewardTag: param.RewardTag, | ||
| 43 | + RewardNum: param.RewardNum, | ||
| 44 | + RewardAmount: param.RewardAmount, | ||
| 45 | + FaultTag: param.FaultTag, | ||
| 46 | + FaultNum: param.FaultNum, | ||
| 47 | + FaultAmount: param.FaultAmount, | ||
| 48 | + CreatedAt: param.CreatedAt, | ||
| 49 | + UpdatedAt: param.UpdatedAt, | ||
| 50 | + Remark: param.Remark, | ||
| 51 | + } | ||
| 52 | + tx := repo.transactionContext.PgTx | ||
| 53 | + if param.Id == 0 { | ||
| 54 | + _, err := tx.Model(&m).Insert() | ||
| 55 | + if err != nil { | ||
| 56 | + return nil, err | ||
| 57 | + } | ||
| 58 | + param.Id = m.Id | ||
| 59 | + } else { | ||
| 60 | + _, err := tx.Model(&m).WherePK().Update() | ||
| 61 | + if err != nil { | ||
| 62 | + return nil, err | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + return param, nil | ||
| 67 | +} | ||
| 68 | + | ||
| 69 | +// func (repo *RewardRuleRepository) Remove(param *domain.RewardStandard) (*domain.RewardStandard, error) { | ||
| 70 | +// tx := repo.transactionContext.PgTx | ||
| 71 | +// m := new(models.RewardStandard) | ||
| 72 | +// m.Id = param.Id | ||
| 73 | +// nowTime := time.Now() | ||
| 74 | +// param.DeletedAt = &nowTime | ||
| 75 | +// _, err := tx.Model(m). | ||
| 76 | +// WherePK().Set("deleted_at=?", nowTime). | ||
| 77 | +// Update() | ||
| 78 | +// if err != nil { | ||
| 79 | +// return param, err | ||
| 80 | +// } | ||
| 81 | + | ||
| 82 | +// return nil, nil | ||
| 83 | +// } | ||
| 84 | + | ||
| 85 | +func (repo *RewardRuleRepository) FindOne(queryOptions map[string]interface{}) (*domain.RewardRule, error) { | ||
| 86 | + tx := repo.transactionContext.PgTx | ||
| 87 | + m := new(models.RewardRule) | ||
| 88 | + query := tx.Model(m) | ||
| 89 | + if v, ok := queryOptions["id"]; ok { | ||
| 90 | + query.Where("id=?", v) | ||
| 91 | + } | ||
| 92 | + err := query.First() | ||
| 93 | + if err != nil { | ||
| 94 | + if err == pg.ErrNoRows { | ||
| 95 | + return nil, domain.ErrorNotFound | ||
| 96 | + } else { | ||
| 97 | + return nil, err | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + result := repo.TransformToDomain(m) | ||
| 101 | + return result, nil | ||
| 102 | +} | ||
| 103 | + | ||
| 104 | +func (repo *RewardRuleRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.RewardRule, error) { | ||
| 105 | + tx := repo.transactionContext.PgTx | ||
| 106 | + m := []models.RewardRule{} | ||
| 107 | + query := tx.Model(&m). | ||
| 108 | + Limit(20) | ||
| 109 | + if v, ok := queryOptions["limit"].(int); ok { | ||
| 110 | + query.Limit(v) | ||
| 111 | + } | ||
| 112 | + if v, ok := queryOptions["offset"].(int); ok { | ||
| 113 | + query.Offset(v) | ||
| 114 | + } | ||
| 115 | + if v, ok := queryOptions["companyId"]; ok { | ||
| 116 | + query.Where("company_id=?", v) | ||
| 117 | + } | ||
| 118 | + cnt, err := query.SelectAndCount() | ||
| 119 | + if err != nil { | ||
| 120 | + return 0, nil, err | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + var listData []*domain.RewardRule | ||
| 124 | + for i := range m { | ||
| 125 | + temp := repo.TransformToDomain(&m[i]) | ||
| 126 | + listData = append(listData, temp) | ||
| 127 | + } | ||
| 128 | + return int64(cnt), listData, nil | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | +func (repo *RewardRuleRepository) TransformToDomain(param *models.RewardRule) *domain.RewardRule { | ||
| 132 | + return &domain.RewardRule{ | ||
| 133 | + Id: param.Id, | ||
| 134 | + CompanyId: param.CompanyId, | ||
| 135 | + OrgId: param.OrgId, | ||
| 136 | + RewardTag: param.RewardTag, | ||
| 137 | + RewardNum: param.RewardNum, | ||
| 138 | + RewardAmount: param.RewardAmount, | ||
| 139 | + FaultTag: param.FaultTag, | ||
| 140 | + FaultNum: param.FaultNum, | ||
| 141 | + FaultAmount: param.FaultAmount, | ||
| 142 | + CreatedAt: param.CreatedAt, | ||
| 143 | + UpdatedAt: param.UpdatedAt, | ||
| 144 | + Remark: param.Remark, | ||
| 145 | + } | ||
| 146 | +} |
| @@ -65,3 +65,21 @@ func (c RewardStandardController) ListRewardStandard() { | @@ -65,3 +65,21 @@ func (c RewardStandardController) ListRewardStandard() { | ||
| 65 | total, data, err := srv.ListRewardStandard(cmd) | 65 | total, data, err := srv.ListRewardStandard(cmd) |
| 66 | ResponseGrid(c.BaseController, total, data, err) | 66 | ResponseGrid(c.BaseController, total, data, err) |
| 67 | } | 67 | } |
| 68 | + | ||
| 69 | +//SaveRewardRule 保存奖惩规则 | ||
| 70 | +func (c RewardStandardController) SaveRewardRule() { | ||
| 71 | + srv := service.NewRewardStandardService(nil) | ||
| 72 | + createCommand := &command.SaveRewardRuleCommand{} | ||
| 73 | + Must(c.Unmarshal(createCommand)) | ||
| 74 | + operater := ParseOperateInfo(c.BaseController) | ||
| 75 | + data, err := srv.SaveRewardRule(operater, createCommand) | ||
| 76 | + c.Response(data, err) | ||
| 77 | +} | ||
| 78 | + | ||
| 79 | +//GetRewardRule 获取奖惩规则 | ||
| 80 | +func (c RewardStandardController) GetRewardRule() { | ||
| 81 | + srv := service.NewRewardStandardService(nil) | ||
| 82 | + operater := ParseOperateInfo(c.BaseController) | ||
| 83 | + data, err := srv.GetRewardRule(operater) | ||
| 84 | + c.Response(data, err) | ||
| 85 | +} |
| @@ -11,5 +11,6 @@ func init() { | @@ -11,5 +11,6 @@ func init() { | ||
| 11 | web.Router("/reward-standard/:id", &controllers.RewardStandardController{}, "Get:GetRewardStandard") | 11 | web.Router("/reward-standard/:id", &controllers.RewardStandardController{}, "Get:GetRewardStandard") |
| 12 | web.Router("/reward-standard/remove", &controllers.RewardStandardController{}, "Post:DeleteRewardStandard") | 12 | web.Router("/reward-standard/remove", &controllers.RewardStandardController{}, "Post:DeleteRewardStandard") |
| 13 | web.Router("/reward-standard/search", &controllers.RewardStandardController{}, "Post:ListRewardStandard") | 13 | web.Router("/reward-standard/search", &controllers.RewardStandardController{}, "Post:ListRewardStandard") |
| 14 | - | 14 | + web.Router("/reward-rule/", &controllers.RewardStandardController{}, "Post:SaveRewardRule") |
| 15 | + web.Router("/reward-rule/", &controllers.RewardStandardController{}, "Get:GetRewardRule") | ||
| 15 | } | 16 | } |
-
请 注册 或 登录 后发表评论