150 lines
3.0 KiB
Go
150 lines
3.0 KiB
Go
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)
|
|
|
|
responses.OkWithData(g, c)
|
|
}
|
|
|
|
// PutUser 修改用户数据-基本信息
|
|
func (r *User) PutUser(c *gin.Context) {
|
|
userRequest := requests.UserRequest{}
|
|
req := userRequest.PutUser
|
|
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
|
|
}
|
|
|
|
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)
|
|
}
|