feat: 新增机器计划任务、数据物理删除调整为逻辑删除、支持记录登录ip归属地等

This commit is contained in:
meilin.huang
2023-07-20 22:41:13 +08:00
parent 6bd9e5333d
commit 7b51705f4e
81 changed files with 2162 additions and 629 deletions

View File

@@ -7,6 +7,7 @@ import (
"mayfly-go/internal/sys/domain/entity"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/ginx"
"mayfly-go/pkg/model"
"mayfly-go/pkg/req"
"mayfly-go/pkg/utils"
"strconv"
@@ -65,40 +66,37 @@ func (r *Role) RoleResource(rc *req.Ctx) {
// 保存角色资源
func (r *Role) SaveResource(rc *req.Ctx) {
g := rc.GinCtx
var form form.RoleResourceForm
ginx.BindJsonAndValid(g, &form)
ginx.BindJsonAndValid(rc.GinCtx, &form)
rid := uint64(form.Id)
rc.ReqParam = form
// 将,拼接的字符串进行切割
idsStr := strings.Split(form.ResourceIds, ",")
var newIds []any
for _, v := range idsStr {
id, _ := strconv.Atoi(v)
newIds = append(newIds, uint64(id))
}
// 将,拼接的字符串进行切割并转换
newIds := utils.ArrayMap[string, uint64](strings.Split(form.ResourceIds, ","), func(val string) uint64 {
id, _ := strconv.Atoi(val)
return uint64(id)
})
// 将[]uint64转为[]any
oIds := r.RoleApp.GetRoleResourceIds(uint64(form.Id))
var oldIds []any
for _, v := range oIds {
oldIds = append(oldIds, v)
}
addIds, delIds, _ := utils.ArrayCompare(newIds, oldIds, func(i1, i2 any) bool {
return i1.(uint64) == i2.(uint64)
addIds, delIds, _ := utils.ArrayCompare(newIds, oIds, func(i1, i2 uint64) bool {
return i1 == i2
})
createTime := time.Now()
creator := rc.LoginAccount.Username
creatorId := rc.LoginAccount.Id
undeleted := model.ModelUndeleted
addVals := make([]*entity.RoleResource, 0)
for _, v := range addIds {
rr := &entity.RoleResource{RoleId: rid, ResourceId: v.(uint64), CreateTime: &createTime, CreatorId: creatorId, Creator: creator}
r.RoleApp.SaveRoleResource(rr)
rr := &entity.RoleResource{RoleId: rid, ResourceId: v, CreateTime: &createTime, CreatorId: creatorId, Creator: creator}
rr.IsDeleted = undeleted
addVals = append(addVals, rr)
}
r.RoleApp.SaveRoleResource(addVals)
for _, v := range delIds {
r.RoleApp.DeleteRoleResource(rid, v.(uint64))
r.RoleApp.DeleteRoleResource(rid, v)
}
}