This commit is contained in:
2026-09-03 17:55:42 +08:00
parent 7c38e84e30
commit c80a3d4a2d
35 changed files with 6795 additions and 597 deletions
+17 -2
View File
@@ -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})
}