更新v1.1.0

Squashed commit of the following:

commit 4443f7c8251b31687ed93114930ab3d769f4ed6c
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 22:10:49 2023 +0800

    美化关于页

commit 95ca46d460eba469ca8ae54f65c7773835061c0f
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 21:59:48 2023 +0800

    更新版本号,更新说明文件增加新版预览截图

commit 052e5f81fe4065e10199d52bc041329fc9c5fe86
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 21:06:52 2023 +0800

    修复后端mkdirAll权限的问题

commit ace57d5ba69c311e40997d5791cf03a8b28e0c07
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 20:59:35 2023 +0800

    修改配置文件

commit 099015f2767cedfd6eae91e60131817471eb1f24
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 14:10:39 2023 +0800

    增加docker-compose文件

commit e229003431ff2476f0ab63a8dffb88504716ba48
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 13:53:20 2023 +0800

    提交更新日志文件

commit e8736b8b62db6d590c063b42757599381429541e
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 13:49:38 2023 +0800

    增加隐藏小图标

commit 038af3aaa91a023cc10aabff5b0cfd15c64d0b46
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 13:49:04 2023 +0800

    优化 密码限制

commit 4cd15a383923bf3de56e9e4dc6df3bf97236ed18
Author: Sun <95302870@qq.com>
Date:   Tue Nov 28 12:34:59 2023 +0800

    增加反馈入口

commit daf6aea902893f816dca5c0bb09326f2f110ddcc
Merge: 3edfadd b057e25
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 22:19:59 2023 +0800

    Merge branch 'master' into dev

commit 3edfaddd173efcbbde867dc9ce9b022920b39061
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 22:17:08 2023 +0800

    修改docker的编译镜像和运行镜像为alpine,兼容极空间设备

commit 3445f97152c2f6b9f1f9f68b46e4b84f8240c9c2
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 13:58:59 2023 +0800

    修复前端编译错误

commit 3ef02013ffb595e7805692350389bb623155cfe9
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 13:56:12 2023 +0800

    更新beta版本号

commit 620f0f1e1523f34e87001e8a2bbe3d4a01cb0b9b
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 13:53:46 2023 +0800

    修复 添加图标成功后遗留旧数据的问题

commit 55d877d1ca11e83d9f7325a321aeb5b65ad4ee8b
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 13:41:55 2023 +0800

    增加置顶按钮

commit f28dd63328aeca5d8c3c036c5786304f8a33b1f9
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 12:56:14 2023 +0800

    优化roundmodal的样式和手机端设置样式

commit c19ce176878ea2ef06b0a5dc75bd6d8239892302
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 11:06:44 2023 +0800

    优化手机端logo文字显示问题

commit 018dabb2faddc0541fb33ef5a51a126575a59cf5
Author: Sun <95302870@qq.com>
Date:   Mon Nov 27 10:51:02 2023 +0800

    更新说明文件

commit 02239e3686933e4c33e430be8300ec2d0be41887
Author: Sun <95302870@qq.com>
Date:   Sun Nov 26 22:59:11 2023 +0800

    优化 登录页面

commit 6aa92e8ba6c4eeb2fa2995ee93aeeac86b54b551
Author: Sun <95302870@qq.com>
Date:   Sat Nov 25 23:59:40 2023 +0800

    增加编译脚本

commit d93df810fa95a7baa28ca5323903b93f286ba741
Author: Sun <95302870@qq.com>
Date:   Sat Nov 25 15:48:00 2023 +0800

    修改相关logo图片

commit 036a56ddc7a555d6227c92dfa2abfe84f9042662
Merge: 7018872 feacc89
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 16:00:23 2023 +0800

    Merge branch 'master' into dev

commit 7018872ce9fd0fa8f1ff4731a16b2ea90fb9153f
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 15:31:31 2023 +0800

    更新版本标签

commit 4fae97dd932ce4638d869a0c7a123c788c3e3e43
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 15:07:39 2023 +0800

    更新版本1.1.0 测试版

commit 890a3c3dbdccbe4dfd5a6915e87a2649c9141e7b
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 14:31:26 2023 +0800

    右键菜单新增打开局域网或者互联网地址,优化分组管理图标不统一的问题

commit 4f014cf4aa384a2c8a03585ffd6ce41c941b9356
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 13:33:43 2023 +0800

    增加 关联删除,优化添加密码长度限制20

commit 5658e6c379b077d359fff75c5e9b904cbce5f81e
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 12:09:41 2023 +0800

    增加更新日志

commit f142d1b378e0525db157a93cca61ee86bf1eb08d
Author: Sun <95302870@qq.com>
Date:   Fri Nov 24 12:09:30 2023 +0800

    添加应用图标验证分组信息必填

commit 2ff2b6b32a4bb70653e3a7312ccb0f4b0b945f07
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 23:45:10 2023 +0800

    优化关于页面,及更新版本序号为2

commit c9b482b24e2d23d638501dbaa44f826386c420b5
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 22:12:13 2023 +0800

    优化关于设置版本号

commit ed70059ffbce1ae8a9e2e0378803f7875ada342b
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 21:41:22 2023 +0800

    修复分组管理不能滚动的问题

commit faa4222b1494271878c2c7469c14a4efa49c6761
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 21:24:34 2023 +0800

    修复分组写死的问题

commit 4f2d0c858e55735b9ba3a8453de9407b76346805
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 20:24:39 2023 +0800

    初步尝试构建测试版本

commit 596bed19dcf3bceb77e30f9c24218888f8da7e64
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 19:24:05 2023 +0800

    修复搜索框配置bug,云端没有默认值,前端打不开搜索引擎选择栏

commit 489fbf748a7e35c6b69198b19038c01a548e20f2
Author: Sun <95302870@qq.com>
Date:   Thu Nov 23 19:22:57 2023 +0800

    增加logo和版本打印,修复模块配置的索引报错

commit 263dab607af8a830acee44e37776bda4da814b40
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 23:02:37 2023 +0800

    调整排序样式

commit c0adf335d3e48e6770d56eb506b471852fbfbc43
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 22:58:18 2023 +0800

    说明文件增加logo

commit 721d22e75b93d3646f5f206d208a9a743840a25b
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 22:40:40 2023 +0800

    更换logo

commit 4df58fec7b2054ce97cf2989045affd144aa4f8b
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 22:38:27 2023 +0800

    完善关于页面

commit 63777f0bbac85550fafe1b084bd664c7722ab934
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 21:12:14 2023 +0800

    字体为纯白色的时候,详情图标会根据背景的明暗度计算字体颜色

commit f328dc73305665a921e030dd4a06d759d0cac3bf
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 17:21:40 2023 +0800

    详情图标居中

commit 663f37bf1a26b7dff24edcfb149222ac780cb90d
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 16:45:11 2023 +0800

    将图标单独拆分为子组件应用图标

commit 30cd5ab460e032f7f6d7c23eb7a9c7af735d0f41
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 13:36:32 2023 +0800

    增加详情图标隐藏描述信息等设置

commit 945a94e76cae4251953512cc09f348ad38bb9a38
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 12:28:46 2023 +0800

    优化图标背景色:支持透明图标并更换背景颜色字段

commit 437053fc9d8d9e3c55aac4d259e4b4c4bc11de58
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 11:20:56 2023 +0800

    完善搜索框

commit a9914f8e8ced23b8c50701a85d522c8f0fcd1c2b
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 01:27:16 2023 +0800

    关闭模块配置相关接口开发模式

commit 2a9e22d4b781f43c0f9b8a867d26c295e756175b
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 01:24:09 2023 +0800

    完成搜索框的样式和模块配置的state等api对接

commit 7f771650ef7272e474f74ed689ab844bf90b946f
Author: Sun <95302870@qq.com>
Date:   Wed Nov 22 00:45:25 2023 +0800

    增加搜索引擎图标

commit a0e0039ae89eaa27e4b849baa0168716866682ea
Author: Sun <95302870@qq.com>
Date:   Tue Nov 21 19:54:36 2023 +0800

    增加 模块配置表

commit 017869794177d7a5d4c12c0eac6fb7c7fe79734e
Author: Sun <95302870@qq.com>
Date:   Tue Nov 21 13:10:39 2023 +0800

    图标标题加粗

commit 7a2d896a44262b54d6a1d2d12fe6bbbc31b1ca49
Author: Sun <95302870@qq.com>
Date:   Tue Nov 21 12:53:39 2023 +0800

    增加图标的预设颜色

commit a6c3120c186646b323e57ecce0f85ec9c79a41a5
Author: Sun <95302870@qq.com>
Date:   Tue Nov 21 12:18:46 2023 +0800

    增加遮罩

commit 84d3db81ea2aaa0f67a67690e449d15401e8e511
Author: Sun <95302870@qq.com>
Date:   Tue Nov 21 11:05:24 2023 +0800

    极简小图标增加鼠标悬浮详情

commit 666a6a117bc30c64a78ab0fe2cb7836c602b2741
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 23:33:10 2023 +0800

    修复 sort字段未修改归0的问题

commit 71afd530d7a740763326a6117f8e7c04ac1f7f69
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 23:32:48 2023 +0800

    适配纯透明图标,增强图标背景色,增加图标url连接支持

commit 619c5e28e1c51c16e14ed09601709ab751ee2454
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 22:37:43 2023 +0800

    修复 每次修改图标都重置了排序号

commit 8a17f1c0bf2f00c530dee61cd5070a74ca4a53b2
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 21:21:20 2023 +0800

    分组为空的时候显示添加图标的图标

commit 755cf3dc569e402cb3dfc9915e94de4f2595571b
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 20:52:45 2023 +0800

    首页图标排序完成

commit 5ccf23c68b3284be00dadf94073a665826737a77
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 14:30:12 2023 +0800

    添加修改图标适配分组

commit 47209d729270bf4704428ecd91606d4721bd9a13
Author: Sun <95302870@qq.com>
Date:   Mon Nov 20 11:06:32 2023 +0800

    保存分组和分组排序已经完成

commit 17403de7ed236a097d70cd5ecbbe261e620ff377
Merge: d0d88eb 980d81a
Author: Sun <95302870@qq.com>
Date:   Sun Nov 19 23:38:00 2023 +0800

    Merge branch 'master' into dev

commit d0d88eb548bbe9d7f5ad663f383db858843a8d8c
Merge: 728dbc8 47b479c
Author: Sun <95302870@qq.com>
Date:   Sun Nov 19 11:13:34 2023 +0800

    Merge branch 'docker-build' into dev

commit 47b479cf8da7214dd9e0592b461743ab7d3824ed
Author: Sun <95302870@qq.com>
Date:   Sun Nov 19 11:12:54 2023 +0800

    修改前端程序名

commit 728dbc80ff7885d0b4cf289b06763cc60ed17d7e
Author: Sun <95302870@qq.com>
Date:   Thu Nov 16 13:44:47 2023 +0800

    新增删除应用分组和修改应用分组,以及图标真正的按组读取

commit a3dbd948ca743384a2de3685083695603d674bf1
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 22:49:58 2023 +0800

    增加图标组api

commit de21f3f232c1243917b5c55ba4bedb01437f8564
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 22:49:44 2023 +0800

    重新划分应用盒子的结构

commit 7c409112ba1f8eefb7df7fffdb78b285e3f5322c
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 22:27:07 2023 +0800

    [后端] 增加应用分组

commit ebf9500529c7db30b1c6e1ed4056013d0f83827a
Merge: acedcb3 97d4f83
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 20:38:05 2023 +0800

    Merge branch 'feature/drag' into dev

commit acedcb32a03ed0ee1833143912a9215182da3fb6
Merge: f105e10 c84eae3
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 20:37:26 2023 +0800

    Merge branch 'master' into dev

commit 97d4f8368dffca2a16d729e666068a552feca87d
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 20:36:19 2023 +0800

    更新软件包

commit 5108f65275181b899b8fc100c615cb6065dcca5d
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 20:30:39 2023 +0800

    简单监听了一下拖拽

commit dae9aea41f1540ccb74abea2a31af5d2a1e4dcfd
Merge: 396db51 f672034
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 10:01:00 2023 +0800

    Merge branch 'master' into feature/drag

commit 396db51979d513559512b0a9702dd0d616c2872b
Author: Sun <95302870@qq.com>
Date:   Wed Nov 15 00:08:02 2023 +0800

    历史性时刻,拖拽图标

commit f105e10fe1ced11d0b32eba37cfbfdb94f6ad07b
Author: Sun <95302870@qq.com>
Date:   Tue Nov 14 11:35:52 2023 +0800

    尝试增加一个分组标题

commit 7e2354f4ed509c7d05667604b7eb56e91f911ed0
Author: Sun <95302870@qq.com>
Date:   Sun Nov 12 23:07:37 2023 +0800

    优化 枚举引用错误

commit 27e85b7da339706ea97604a785bf013dad5f9534
Author: Sun <95302870@qq.com>
Date:   Sun Nov 12 23:06:50 2023 +0800

    优化路由

commit fef462804c0d445f5b9bc7e38e226b55c26017ee
Author: Sun <95302870@qq.com>
Date:   Sun Nov 12 21:28:57 2023 +0800

    更换enums的位置
This commit is contained in:
Sun
2023-11-29 10:23:57 +08:00
parent b057e25443
commit 9cf463b04c
83 changed files with 2089 additions and 580 deletions
@@ -20,3 +20,12 @@ type VerificationResponse struct {
Result bool `json:"result"`
Message string `json:"message"`
}
type SortRequestItem struct {
Id uint `json:"id"`
Sort uint `json:"sort"`
}
type SortRequest struct {
SortItems []SortRequestItem `json:"sortItems"`
}
@@ -1,8 +1,16 @@
package adminApiStructs
package panelApiStructs
import "sun-panel/models"
import (
"sun-panel/api/api_v1/common/apiData/commonApiStructs"
"sun-panel/models"
)
type ItemIconEditRequest struct {
models.ItemIcon
IconJson string
}
type ItemIconSaveSortRequest struct {
SortItems []commonApiStructs.SortRequestItem `json:"sortItems"`
ItemIconGroupId uint `json:"itemIconGroupId"`
}
+4 -3
View File
@@ -1,7 +1,8 @@
package panel
type ApiPanel struct {
ItemIcon ItemIcon
UserConfig UserConfig
UsersApi UsersApi
ItemIcon ItemIcon
UserConfig UserConfig
UsersApi UsersApi
ItemIconGroup ItemIconGroup
}
+152
View File
@@ -0,0 +1,152 @@
package panel
import (
"math"
"sun-panel/api/api_v1/common/apiData/commonApiStructs"
"sun-panel/api/api_v1/common/apiReturn"
"sun-panel/api/api_v1/common/base"
"sun-panel/global"
"sun-panel/models"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"gorm.io/gorm"
)
type ItemIconGroup struct {
}
func (a *ItemIconGroup) Edit(c *gin.Context) {
userInfo, _ := base.GetCurrentUserInfo(c)
req := models.ItemIconGroup{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
req.UserId = userInfo.ID
if req.ID != 0 {
// 修改
updateField := []string{"IconJson", "Icon", "Title", "Url", "LanUrl", "Description", "OpenMethod", "GroupId", "UserId"}
if req.Sort != 0 {
updateField = append(updateField, "Sort")
}
global.Db.Model(&models.ItemIconGroup{}).
Select(updateField).
Where("id=?", req.ID).Updates(&req)
} else {
// 创建
global.Db.Create(&req)
}
apiReturn.SuccessData(c, req)
}
func (a *ItemIconGroup) GetList(c *gin.Context) {
userInfo, _ := base.GetCurrentUserInfo(c)
groups := []models.ItemIconGroup{}
if err := global.Db.Order("sort ,created_at").Where("user_id=?", userInfo.ID).Find(&groups).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
// 判断分组是否为空,为空将自动创建默认分组
if len(groups) == 0 {
defaultGroup := models.ItemIconGroup{
Title: "APP",
UserId: userInfo.ID,
Icon: "material-symbols:ad-group-outline"}
if err := global.Db.Create(&defaultGroup).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
// 并将当前账号下所有无分组的图标更新到当前组
if err := global.Db.Model(&models.ItemIcon{}).Where("user_id=?", userInfo.ID).Update("item_icon_group_id", defaultGroup.ID).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
groups = append(groups, defaultGroup)
}
apiReturn.SuccessListData(c, groups, 0)
}
func (a *ItemIconGroup) Deletes(c *gin.Context) {
req := commonApiStructs.RequestDeleteIds[uint]{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
userInfo, _ := base.GetCurrentUserInfo(c)
var count int64
if err := global.Db.Model(&models.ItemIconGroup{}).Where(" user_id=?", userInfo.ID).Count(&count).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
} else {
if math.Abs(float64(len(req.Ids))-float64(count)) < 1 {
apiReturn.Error(c, "至少要保留一个")
return
}
}
txErr := global.Db.Transaction(func(tx *gorm.DB) error {
mitemIcon := models.ItemIcon{}
if err := tx.Delete(&models.ItemIconGroup{}, "id in ? AND user_id=?", req.Ids, userInfo.ID).Error; err != nil {
return err
}
if err := mitemIcon.DeleteByItemIconGroupIds(tx, userInfo.ID, req.Ids); err != nil {
return err
}
return nil
})
if txErr != nil {
apiReturn.ErrorDatabase(c, txErr.Error())
return
}
apiReturn.Success(c)
}
// 保存排序
func (a *ItemIconGroup) SaveSort(c *gin.Context) {
req := commonApiStructs.SortRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
userInfo, _ := base.GetCurrentUserInfo(c)
transactionErr := global.Db.Transaction(func(tx *gorm.DB) error {
// 在事务中执行一些 db 操作(从这里开始,您应该使用 'tx' 而不是 'db'
for _, v := range req.SortItems {
if err := tx.Model(&models.ItemIconGroup{}).Where("user_id=? AND id=?", userInfo.ID, v.Id).Update("sort", v.Sort).Error; err != nil {
// 返回任何错误都会回滚事务
return err
}
}
// 返回 nil 提交事务
return nil
})
if transactionErr != nil {
apiReturn.ErrorDatabase(c, transactionErr.Error())
return
}
apiReturn.Success(c)
}
+48 -6
View File
@@ -3,6 +3,7 @@ package panel
import (
"encoding/json"
"sun-panel/api/api_v1/common/apiData/commonApiStructs"
"sun-panel/api/api_v1/common/apiData/panelApiStructs"
"sun-panel/api/api_v1/common/apiReturn"
"sun-panel/api/api_v1/common/base"
"sun-panel/global"
@@ -10,6 +11,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"gorm.io/gorm"
)
type ItemIcon struct {
@@ -24,9 +26,12 @@ func (a *ItemIcon) Edit(c *gin.Context) {
return
}
if req.ItemIconGroupId == 0 {
apiReturn.Error(c, "分组为必填项")
return
}
req.UserId = userInfo.ID
req.GroupId = 1
req.Sort = 1
// json转字符串
if j, err := json.Marshal(req.Icon); err == nil {
@@ -35,10 +40,15 @@ func (a *ItemIcon) Edit(c *gin.Context) {
if req.ID != 0 {
// 修改
updateField := []string{"IconJson", "Icon", "Title", "Url", "LanUrl", "Description", "OpenMethod", "GroupId", "UserId", "ItemIconGroupId"}
if req.Sort != 0 {
updateField = append(updateField, "Sort")
}
global.Db.Model(&models.ItemIcon{}).
Select("IconJson", "Icon", "Title", "Url", "LanUrl", "Description", "OpenMethod", "Sort", "GroupId", "UserId").
Select(updateField).
Where("id=?", req.ID).Updates(&req)
} else {
req.Sort = 9999
// 创建
global.Db.Create(&req)
}
@@ -77,7 +87,7 @@ func (a *ItemIcon) Edit(c *gin.Context) {
// }
func (a *ItemIcon) GetListByGroupId(c *gin.Context) {
req := commonApiStructs.RequestPage{}
req := models.ItemIcon{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
@@ -87,7 +97,7 @@ func (a *ItemIcon) GetListByGroupId(c *gin.Context) {
userInfo, _ := base.GetCurrentUserInfo(c)
itemIcons := []models.ItemIcon{}
if err := global.Db.Order("sort ,created_at DESC").Where("user_id=?", userInfo.ID).Find(&itemIcons, "group_id = ? AND user_id=?", 1, userInfo.ID).Error; err != nil {
if err := global.Db.Order("sort ,created_at").Find(&itemIcons, "item_icon_group_id = ? AND user_id=?", req.ItemIconGroupId, userInfo.ID).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
@@ -108,10 +118,42 @@ func (a *ItemIcon) Deletes(c *gin.Context) {
}
userInfo, _ := base.GetCurrentUserInfo(c)
if err := global.Db.Debug().Delete(&models.ItemIcon{}, "id in ? AND user_id=?", req.Ids, userInfo.ID).Error; err != nil {
if err := global.Db.Delete(&models.ItemIcon{}, "id in ? AND user_id=?", req.Ids, userInfo.ID).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
apiReturn.Success(c)
}
// 保存排序
func (a *ItemIcon) SaveSort(c *gin.Context) {
req := panelApiStructs.ItemIconSaveSortRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
userInfo, _ := base.GetCurrentUserInfo(c)
transactionErr := global.Db.Transaction(func(tx *gorm.DB) error {
// 在事务中执行一些 db 操作(从这里开始,您应该使用 'tx' 而不是 'db'
for _, v := range req.SortItems {
if err := tx.Model(&models.ItemIcon{}).Where("user_id=? AND id=? AND item_icon_group_id=?", userInfo.ID, v.Id, req.ItemIconGroupId).Update("sort", v.Sort).Error; err != nil {
// 返回任何错误都会回滚事务
return err
}
}
// 返回 nil 提交事务
return nil
})
if transactionErr != nil {
apiReturn.ErrorDatabase(c, transactionErr.Error())
return
}
apiReturn.Success(c)
}
+48 -1
View File
@@ -1,6 +1,7 @@
package panel
import (
"math"
"sun-panel/api/api_v1/common/apiReturn"
"sun-panel/api/api_v1/common/base"
"sun-panel/global"
@@ -9,6 +10,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"gorm.io/gorm"
)
// 此API 临时使用,后期带有管理功能,将废除!!!
@@ -64,10 +66,55 @@ func (a UsersApi) Deletes(c *gin.Context) {
return
}
if err := global.Db.Delete(&models.User{}, &param.UserIds).Error; err != nil {
var count int64
if err := global.Db.Model(&models.User{}).Count(&count).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
} else {
if math.Abs(float64(len(param.UserIds))-float64(count)) < 1 {
apiReturn.Error(c, "至少要保留一个")
return
}
}
txErr := global.Db.Transaction(func(tx *gorm.DB) error {
mitemIconGroup := models.ItemIconGroup{}
for _, v := range param.UserIds {
// 删除图标
if err := tx.Delete(&models.ItemIcon{}, "user_id=?", v).Error; err != nil {
return err
}
// 删除分组
if err := mitemIconGroup.DeleteByUserId(tx, v); err != nil {
return err
}
// 删除模块配置
if err := tx.Delete(&models.ModuleConfig{}, "user_id=?", v).Error; err != nil {
return err
}
// 删除用户配置
if err := tx.Delete(&models.ModuleConfig{}, "user_id=?", v).Error; err != nil {
return err
}
// // 删除文件记录(不删除资源文件)
// if err := tx.Delete(&models.File{}, "user_id=?", v).Error; err != nil {
// return err
// }
}
if err := tx.Delete(&models.User{}, &param.UserIds).Error; err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return err
}
return nil
})
if txErr != nil {
apiReturn.ErrorDatabase(c, txErr.Error())
return
}
apiReturn.Success(c)
}
+8 -7
View File
@@ -1,11 +1,12 @@
package system
type ApiSystem struct {
About About
LoginApi LoginApi
UserApi UserApi
FileApi FileApi
CaptchaApi CaptchaApi
RegisterApi RegisterApi
NoticeApi NoticeApi
About About
LoginApi LoginApi
UserApi UserApi
FileApi FileApi
CaptchaApi CaptchaApi
RegisterApi RegisterApi
NoticeApi NoticeApi
ModuleConfigApi ModuleConfigApi
}
+53
View File
@@ -0,0 +1,53 @@
package system
import (
"sun-panel/api/api_v1/common/apiReturn"
"sun-panel/api/api_v1/common/base"
"sun-panel/global"
"sun-panel/models"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
)
type ModuleConfigApi struct{}
func (a *ModuleConfigApi) GetByName(c *gin.Context) {
req := models.ModuleConfig{}
if err := c.ShouldBindWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
userInfo, _ := base.GetCurrentUserInfo(c)
mCfg := models.ModuleConfig{}
if cfg, err := mCfg.GetConfigByUserIdAndName(global.Db, userInfo.ID, req.Name); err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
} else {
apiReturn.SuccessData(c, cfg)
return
}
}
func (a *ModuleConfigApi) Save(c *gin.Context) {
req := models.ModuleConfig{}
if err := c.ShouldBindWith(&req, binding.JSON); err != nil {
apiReturn.ErrorParamFomat(c, err.Error())
return
}
userInfo, _ := base.GetCurrentUserInfo(c)
mCfg := models.ModuleConfig{}
mCfg.UserId = userInfo.ID
mCfg.Value = req.Value
mCfg.Name = req.Name
if err := mCfg.Save(global.Db); err != nil {
apiReturn.ErrorDatabase(c, err.Error())
return
}
apiReturn.Success(c)
}
+2 -2
View File
@@ -23,8 +23,8 @@ type LoginApi struct {
// 登录输入验证
type LoginLoginVerify struct {
Username string `json:"username" validate:"required,min=5"`
Password string `json:"password" validate:"required,min=5,max=20"`
Username string `json:"username" validate:"required"`
Password string `json:"password" validate:"required,max=50"`
VCode string `json:"vcode" validate:"max=6"`
Email string `json:"email"`
}