From 7dd6097d42d6d6f254a84ab0111bac70f0358660 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 30 四月 2024 10:20:40 +0800
Subject: [PATCH] 加一些注释
---
controllers/salary_plan_controller.go | 70 ++++++++++++++++++++++++++++++----
1 files changed, 61 insertions(+), 9 deletions(-)
diff --git a/controllers/salary_plan_controller.go b/controllers/salary_plan_controller.go
index fb8d9aa..02109c9 100644
--- a/controllers/salary_plan_controller.go
+++ b/controllers/salary_plan_controller.go
@@ -127,23 +127,75 @@
util.ResponseFormat(c, code.RequestParamError, "绫诲瀷涓嶈兘涓虹┖")
return
}
- types := make([]*models.MiniDict, 0)
- for _, value := range params.Values {
+ miniDicts, err := models.NewMiniDictSearch().SetType(params.Type).FindNotTotal()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, err)
+ return
+ }
+ dicts := params.Values
+ add := make([]*models.MiniDict, 0)
+ del := make([]uint, 0)
+ update := make([]*models.MiniDict, 0)
+ for _, mini := range miniDicts {
+ flag := true
+ for i, value := range dicts {
+ var dict models.MiniDict
+ dict.Name = value.Name
+ dict.IsDefault = value.IsDefault
+ dict.Type = params.Type
+ if value.Id == 0 {
+ add = append(add, &dict)
+ flag = false
+ if i < len(dicts)-1 {
+ dicts = append(dicts[:i], dicts[i+1:]...)
+ } else {
+ dicts = dicts[:i]
+ }
+ break
+ } else if value.Id == mini.ID {
+ update = append(update, &dict)
+ flag = false
+ if i < len(dicts)-1 {
+ dicts = append(dicts[:i], dicts[i+1:]...)
+ } else {
+ dicts = dicts[:i]
+ }
+ break
+ }
+ }
+ if flag {
+ del = append(del, mini.ID)
+ }
+ }
+ //鏂板鐨�
+ for _, value := range dicts {
var dict models.MiniDict
dict.Name = value.Name
dict.IsDefault = value.IsDefault
dict.Type = params.Type
- types = append(types, &dict)
+ add = append(add, &dict)
}
+
err = models.WithTransaction(func(db *gorm.DB) error {
- err = models.NewMiniDictSearch().SetOrm(db).SetType(params.Type).Delete()
- if err != nil {
- return err
+ if len(del) > 0 {
+ err = models.NewMiniDictSearch().SetOrm(db).SetIds(del).Delete()
+ if err != nil {
+ return err
+ }
}
- err = models.NewMiniDictSearch().SetOrm(db).CreateBatch(types)
- if err != nil {
- return err
+ if len(update) > 0 {
+ err = models.NewMiniDictSearch().SetOrm(db).SaveBatch(update)
+ if err != nil {
+ return err
+ }
}
+ if len(add) > 0 {
+ err = models.NewMiniDictSearch().SetOrm(db).CreateBatch(add)
+ if err != nil {
+ return err
+ }
+ }
+
return nil
})
if err != nil {
--
Gitblit v1.8.0