更新
This commit is contained in:
@@ -38,10 +38,15 @@ func (h *UserHandler) UpdateProfile(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
if err := h.svc.UpdateProfile(userID, &req); err != nil {
|
||||
response.Internal(c, err.Error())
|
||||
response.BadRequest(c, err.Error())
|
||||
return
|
||||
}
|
||||
response.OK(c, gin.H{"message": "更新成功"})
|
||||
u, err := h.svc.GetUserByID(userID)
|
||||
if err != nil {
|
||||
response.OK(c, gin.H{"message": "更新成功"})
|
||||
return
|
||||
}
|
||||
response.OK(c, u)
|
||||
}
|
||||
|
||||
// AddContact POST /api/user/contacts
|
||||
@@ -149,11 +154,21 @@ func (h *UserHandler) HasEducation(c *gin.Context) {
|
||||
// PublicProfile GET /api/user/:id 公开信息(班级成员查看)
|
||||
func (h *UserHandler) PublicProfile(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
currentUserID := middleware.CurrentUserID(c)
|
||||
user, err := h.svc.GetUserByID(uint(id))
|
||||
if err != nil {
|
||||
response.NotFound(c, err.Error())
|
||||
return
|
||||
}
|
||||
// 隐私脱敏保护:非本人且非管理员,对身份证号码脱敏
|
||||
isAdmin := middleware.CurrentRole(c) == "admin"
|
||||
if currentUserID != user.ID && !isAdmin {
|
||||
if len(user.IdCard) == 18 {
|
||||
user.IdCard = user.IdCard[:6] + "********" + user.IdCard[14:]
|
||||
} else if user.IdCard != "" {
|
||||
user.IdCard = "****************"
|
||||
}
|
||||
}
|
||||
contacts := h.svc.GetUserContacts(uint(id))
|
||||
response.OK(c, gin.H{"user": user, "contacts": contacts})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user