From 3dab7ac6d45b7453df773a7b616c458edc10c39f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 8 May 2024 10:59:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=95=E5=AF=BC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E8=B4=A6=E5=8F=B7=E9=87=8D=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/common/common.go | 7 +-- src/modules/common/controller/bootloader.go | 57 +++++++++++++++++++-- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/modules/common/common.go b/src/modules/common/common.go index fcbf8a9e..bb6c68b0 100644 --- a/src/modules/common/common.go +++ b/src/modules/common/common.go @@ -28,9 +28,10 @@ func Setup(router *gin.Engine) { // 系统引导初始化 guideGroup := router.Group("/bootloader") { - guideGroup.POST("", controller.NewBootloader.BootloaderStart) - guideGroup.PUT("", middleware.PreAuthorize(nil), controller.NewBootloader.BootloaderDone) - guideGroup.DELETE("", middleware.PreAuthorize(nil), controller.NewBootloader.BootloaderReset) + guideGroup.POST("", controller.NewBootloader.Start) + guideGroup.PUT("", middleware.PreAuthorize(nil), controller.NewBootloader.Done) + guideGroup.DELETE("", middleware.PreAuthorize(nil), controller.NewBootloader.Reset) + guideGroup.PUT("/account", middleware.PreAuthorize(nil), controller.NewBootloader.Account) } // 验证码操作处理 diff --git a/src/modules/common/controller/bootloader.go b/src/modules/common/controller/bootloader.go index c2da6267..daa12daa 100644 --- a/src/modules/common/controller/bootloader.go +++ b/src/modules/common/controller/bootloader.go @@ -4,8 +4,10 @@ import ( adminConstants "be.ems/src/framework/constants/admin" "be.ems/src/framework/constants/common" tokenConstants "be.ems/src/framework/constants/token" + "be.ems/src/framework/i18n" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/machine" + "be.ems/src/framework/utils/regular" tokenUtils "be.ems/src/framework/utils/token" "be.ems/src/framework/vo" "be.ems/src/framework/vo/result" @@ -33,7 +35,7 @@ type BootloaderController struct { // 首次引导开始 // // POST / -func (s *BootloaderController) BootloaderStart(c *gin.Context) { +func (s *BootloaderController) Start(c *gin.Context) { // 是否完成引导 launchInfo := machine.LaunchInfo if launchInfo == nil { @@ -81,7 +83,7 @@ func (s *BootloaderController) BootloaderStart(c *gin.Context) { // 首次引导完成 // // PUT / -func (s *BootloaderController) BootloaderDone(c *gin.Context) { +func (s *BootloaderController) Done(c *gin.Context) { // 是否完成引导 launchInfo := machine.LaunchInfo if launchInfo == nil { @@ -107,7 +109,7 @@ func (s *BootloaderController) BootloaderDone(c *gin.Context) { // 引导系统数据重置 // // DELETE / -func (s *BootloaderController) BootloaderReset(c *gin.Context) { +func (s *BootloaderController) Reset(c *gin.Context) { // 是否完成引导 launchInfo := machine.LaunchInfo if launchInfo == nil { @@ -128,3 +130,52 @@ func (s *BootloaderController) BootloaderReset(c *gin.Context) { tokenUtils.Remove(ctx.Authorization(c)) c.JSON(200, result.Ok(nil)) } + +// 账号变更 +// +// PUT /account +func (s *BootloaderController) Account(c *gin.Context) { + language := ctx.AcceptLanguage(c) + var body struct { + UserName string `json:"username" binding:"required"` + Password string `json:"password" binding:"required"` + } + if err := c.ShouldBindJSON(&body); err != nil { + c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) + return + } + + if !regular.ValidPassword(body.Password) { + // 登录密码至少包含大小写字母、数字、特殊符号,且不少于6位 + c.JSON(200, result.ErrMsg(i18n.TKey(language, "user.errPasswd"))) + return + } + + // 是否完成引导 + launchInfo := machine.LaunchInfo + if launchInfo == nil { + c.JSON(200, result.Err(nil)) + return + } + if v, ok := launchInfo[common.LAUNCH_BOOTLOADER]; ok && !v.(bool) { + c.JSON(200, result.ErrMsg("bootloader done")) + return + } + + // 查询用户登录账号 + sysUser := s.sysUserService.SelectUserById("2") + if sysUser.UserID != "2" { + c.JSON(200, result.ErrMsg("not found user data")) + return + } + sysUser.UserName = body.UserName + sysUser.NickName = body.UserName + sysUser.Password = body.Password + sysUser.UpdateBy = ctx.LoginUserToUserName(c) + rows := s.sysUserService.UpdateUser(sysUser) + if rows > 0 { + c.JSON(200, result.Ok(nil)) + return + } + c.JSON(200, result.Err(nil)) +}