package controller import ( "github.com/gin-gonic/gin" "hepa-calc-api/api/dao" "hepa-calc-api/api/dto" "hepa-calc-api/api/requests" "hepa-calc-api/api/responses" "hepa-calc-api/api/service" "hepa-calc-api/global" "hepa-calc-api/utils" ) type User struct{} // GetUser 获取用户数据-基本信息 func (r *User) GetUser(c *gin.Context) { userId := c.GetInt64("UserId") // 获取用户数据 userDao := dao.UserDao{} user, err := userDao.GetUserById(userId) if err != nil || user == nil { responses.FailWithMessage("用户数据错误", c) return } if user.UserStatus == 2 { responses.FailWithMessage("用户已禁用", c) return } g := dto.GetUserDto(user) // 加载数据-生日 g.LoadBirthday(user.Birthday) responses.OkWithData(g, c) } // GetUserInfo 获取用户数据-详情信息 func (r *User) GetUserInfo(c *gin.Context) { userId := c.GetInt64("UserId") // 获取用户数据 userInfoDao := dao.UserInfoDao{} userInfo, err := userInfoDao.GetUserInfoByUserId(userId) if err != nil || userInfo == nil { responses.FailWithMessage("用户数据错误", c) return } g := dto.GetUserInfoDto(userInfo) // 加载数据-预产期 g.LoadExpectedDate(userInfo.ExpectedDate) // 处理身高 h, err := utils.StrToFloat64(userInfo.Height) g.Height = h // 处理体重 w, err := utils.StrToFloat64(userInfo.Weight) g.Weight = w responses.OkWithData(g, c) } // PutUser 修改用户数据-基本信息 func (r *User) PutUser(c *gin.Context) { userRequest := requests.UserRequest{} req := userRequest.PutUser if err := c.ShouldBindJSON(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } userId := c.GetInt64("UserId") // 业务处理 userService := service.UserService{} res, err := userService.PutUser(userId, req) if err != nil || res != true { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // GetUserCheck 检测用户数据绑定状态 func (r *User) GetUserCheck(c *gin.Context) { userRequest := requests.UserRequest{} req := userRequest.GetUserCheck if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } if req.Mobile == "" && req.OpenId == "" { responses.FailWithMessage("缺少参数", c) return } g := &dto.UserCheckDto{} // 获取用户数据 maps := make(map[string]interface{}) if req.OpenId != "" { maps["open_id"] = req.OpenId } if req.Mobile != "" { maps["mobile"] = req.Mobile } userDao := dao.UserDao{} user, err := userDao.GetUser(maps) if err != nil || user == nil { g.WxStatus = 0 g.MobileStatus = 0 g.NameStatus = 0 responses.OkWithData(g, c) return } if user.UserStatus == 2 { responses.FailWithMessage("用户已禁用", c) return } if user.UserName != "" { g.NameStatus = 1 } if user.Mobile != "" { g.MobileStatus = 1 } if user.OpenId != "" { g.WxStatus = 1 } responses.OkWithData(g, c) }