diff --git a/app/controller/admin/config_dict.go b/app/controller/admin/config_dict.go index fbf1cda..41bbf28 100644 --- a/app/controller/admin/config_dict.go +++ b/app/controller/admin/config_dict.go @@ -94,7 +94,7 @@ func (c *Dict) Edit(r *ghttp.Request) { response.FailJson(true, r, "字典类型已经存在") } userId := user_service.GetLoginID(r) //获取登陆用户id - _, err := dict_service.EditSave(req, userId) + err := dict_service.EditSave(req, userId) if err != nil { response.FailJson(true, r, err.Error()) } diff --git a/app/model/admin/sys_dict_type/sys_dict_type.go b/app/model/admin/sys_dict_type/sys_dict_type.go index 02b153b..68a1af5 100644 --- a/app/model/admin/sys_dict_type/sys_dict_type.go +++ b/app/model/admin/sys_dict_type/sys_dict_type.go @@ -75,26 +75,6 @@ func GetDictById(id int) (dict *Entity, err error) { return } -//修改保存字典类型 -func EditSave(req *EditReq, userId uint64) (int64, error) { - entity, err := GetDictById(gconv.Int(req.DictId)) - if err != nil || entity == nil { - return 0, err - } - entity.DictType = req.DictType - entity.DictName = req.DictName - entity.Status = req.Status - entity.Remark = req.Remark - entity.UpdateBy = gconv.Uint(userId) - entity.UpdateTime = gconv.Uint64(gtime.Timestamp()) - res, err := Model.Save(entity) - if err != nil { - g.Log().Error(err) - return 0, gerror.New("更新失败") - } - return res.RowsAffected() -} - //根据主键判断是否唯一 func CheckDictTypeUnique(dictType *EditReq) bool { dict, err := Model.FindOne("dict_type=? and dict_id!=?", dictType.DictType, dictType.DictId) diff --git a/app/service/admin/dict_service/dict_type.go b/app/service/admin/dict_service/dict_type.go index 2d122c3..17ef046 100644 --- a/app/service/admin/dict_service/dict_type.go +++ b/app/service/admin/dict_service/dict_type.go @@ -1,10 +1,13 @@ package dict_service import ( + "gfast/app/model/admin/sys_dict_data" "gfast/app/model/admin/sys_dict_type" "gfast/app/service/cache_service" + "github.com/gogf/gf/database/gdb" "github.com/gogf/gf/errors/gerror" "github.com/gogf/gf/frame/g" + "github.com/gogf/gf/os/gtime" "github.com/gogf/gf/util/gconv" ) @@ -24,8 +27,34 @@ func AddSave(req *sys_dict_type.AddReq, userId uint64) (int64, error) { } //修改保存字典类型 -func EditSave(req *sys_dict_type.EditReq, userId uint64) (int64, error) { - return sys_dict_type.EditSave(req, userId) +func EditSave(req *sys_dict_type.EditReq, userId uint64) error { + return g.DB().Transaction(func(tx *gdb.TX) error { + entity, err := GetDictById(gconv.Int(req.DictId)) + if err != nil || entity == nil { + return err + } + oldType := entity.DictType + entity.DictType = req.DictType + entity.DictName = req.DictName + entity.Status = req.Status + entity.Remark = req.Remark + entity.UpdateBy = gconv.Uint(userId) + entity.UpdateTime = gconv.Uint64(gtime.Timestamp()) + _, err = sys_dict_type.Model.TX(tx).Save(entity) + if err != nil { + g.Log().Error(err) + return gerror.New("更新失败") + } + //更新字典数据中的类型 + _, err = sys_dict_data.Model.TX(tx).Data(g.Map{ + sys_dict_data.Columns.DictType: req.DictType, + }).Where(sys_dict_data.Columns.DictType, oldType).Update() + if err != nil { + g.Log().Error(err) + return gerror.New("更新失败") + } + return nil + }) } //字典列表查询分页