- 在多个控制器和服务中添加了 context.Context 参数,以支持请求上下文的传递 - 更新了相关的数据库操作函数,确保在执行数据库查询时使用上下文 - 优化了代码结构,提高了可读性和可维护性 - 此次修改增强了系统的灵活性和性能,便于后续的扩展和调试
46 lines
1.2 KiB
Go
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)
|
|
}
|