Files
kami_boss/internal/controllers/updateMerchantController.go
danial 5e8c7b32fd feat(internal): 为服务和控制器添加上下文支持
- 在多个控制器和服务中添加了 context.Context 参数,以支持请求上下文的传递
- 更新了相关的数据库操作函数,确保在执行数据库查询时使用上下文
- 优化了代码结构,提高了可读性和可维护性
- 此次修改增强了系统的灵活性和性能,便于后续的扩展和调试
2025-06-22 19:27:25 +08:00

46 lines
1.2 KiB
Go

package controllers
import (
"boss/internal/datas"
"boss/internal/service"
"boss/internal/utils/valid"
)
// UpdateMerchantPassword 更新密码
func (c *UpdateController) UpdateMerchantPassword() {
ctx := c.Ctx.Request.Context()
merchantUid := c.GetString("merchantUid")
newPassword := c.GetString("newPassword")
totpCode := c.GetString("totpCode")
userID, ok := c.GetSession("userID").(string)
dataJSON := new(datas.KeyDataJSON)
if !ok || userID == "" {
dataJSON.Code = 404
dataJSON.Msg = "请重新登录!"
c.GenerateJSON(dataJSON)
return
}
// 判断totp是不是正确
if service.ValidTotp(ctx, userID, totpCode) {
dataJSON.Code = -1
dataJSON.Msg = "二次验证错误"
c.GenerateJSON(dataJSON)
return
}
if len(newPassword) <= 8 {
dataJSON.Code = -1
dataJSON.Msg = "新密码长度必须大于等于8个字符!"
} else if len(newPassword) > 16 {
dataJSON.Code = -1
dataJSON.Msg = "新密码长度不能大于16个字符!"
} else if valid.HaveAlphaNumeric(newPassword) {
dataJSON.Code = -1
dataJSON.Msg = "新密码必须有数字和字母组成!"
} else {
dataJSON.Code = 200
dataJSON.Msg = "密码修改成功!"
service.UpdateMerchantPassword(ctx, merchantUid, totpCode)
}
c.GenerateJSON(dataJSON)
}