diff --git a/controller/account.go b/controller/account.go index b0ef037..7d1a27f 100644 --- a/controller/account.go +++ b/controller/account.go @@ -15,6 +15,14 @@ import ( "time" ) +// AuthLogin 用户登陆 +// @Summary 用户登陆 +// @Tags 用户鉴权 +// @Produce json +// @Accept json +// @Param request body models.ErpOrderCreateReq true "用户登陆模型" +// @Success 200 {object} app.Response +// @Router /api/v1/auth/login [post] func AuthLogin(c *gin.Context) { req := struct { Code string `json:"code" binding:"required"` @@ -56,23 +64,13 @@ func AuthLogin(c *gin.Context) { return } - //var lastUser model.User - //if err := model.NewUserQuerySet(model.DB).OrderDescByID().One(&lastUser); err != nil && err != model.RecordNotFound { - // logger.Error(err) - // RespJson(c, status.InternalServerError, nil) - // return - //} fmt.Println("InviteUid:", req.InviteUid) - nowTime := time.Now() // 不存在则创建 新用户 - //var invite *model.UserInvite - //if req.InviteUid != 0 && req.InviteUid != user.Uid && user.StoreId == 0 { - if req.InviteUid != 0 && req.InviteUid != user.Uid { - + if req.InviteUid != 0 && req.InviteUid != user.Uid { // 入参有邀请人id且非本人 inviteUser := model.GetUserByUid(req.InviteUid) user.StoreId = inviteUser.StoreId - if user.StoreId == 0 { + if user.StoreId == 0 { // 用户所属门店id为空则更新 _, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId). UpdateNum() if err != nil { @@ -80,7 +78,7 @@ func AuthLogin(c *gin.Context) { } } - if inviteUser.UserType == 2 && user.Uid != 0 { + if inviteUser.UserType == 2 && user.Uid != 0 { // 店员邀请 exist, err := model.QueryRecordExist( fmt.Sprintf("SELECT * FROM user_invite_record WHERE to_uid = %d AND from_uid = %d ", user.Uid, req.InviteUid)) @@ -89,29 +87,28 @@ func AuthLogin(c *gin.Context) { RespJson(c, status.InternalServerError, nil) return } - if !exist { + if !exist { // 未邀请过,则添加邀请记录 firstInviteRecord := &model.UserInviteRecord{ ToUid: user.Uid, FromUid: req.InviteUid, - Action: 2, - SpendType: 1, - MemberLevel: 0, - First: 1, - Scan: 1, - ActionTime: nowTime, + Action: 2, // 激活邀请 + SpendType: 1, // 未开通 + MemberLevel: 0, // 0,未开通会员 + First: 1, // 首次 + Scan: 1, // 扫码次数 + ActionTime: nowTime, // 激活时间 } err = model.DB.Create(firstInviteRecord).Error if err != nil { logger.Error("create user invite record err:", err) } - } - // 扫码记录 + // 已经邀请过,则更新扫码记录 inviteRecord := &model.UserInviteRecord{ ToUid: user.Uid, FromUid: req.InviteUid, - Action: 1, - SpendType: 1, + Action: 1, // 未激活 + SpendType: 1, // 未开通 MemberLevel: 0, First: 0, Scan: 1, @@ -131,24 +128,24 @@ func AuthLogin(c *gin.Context) { } fmt.Println("inviteErr:", inviteErr) fmt.Printf("inviteNew:%#v \n", inviteNew) - if inviteErr == model.RecordNotFound { + if inviteErr == model.RecordNotFound { // 邀请表没记录 memberLevel := user.MemberLevel if memberLevel == 0 { - memberLevel = model.MemberTypeConsumer + memberLevel = model.MemberTypeConsumer // 普通用户 } invite := &model.UserInvite{ FromUid: req.InviteUid, - UserType: inviteUser.UserType, - StoreId: inviteUser.StoreId, - MemberOpenTime: time.Time{}, - MemberType: memberLevel, - MemberStatus: 1, + UserType: inviteUser.UserType, // 邀请人用户类型 + StoreId: inviteUser.StoreId, // 邀请人门店ID + MemberOpenTime: time.Time{}, // 开通会员时间 + MemberType: memberLevel, // 被邀请用户类型 + MemberStatus: 1, // 被邀请用户会员类型 ToUid: user.Uid, - Action: 1, - SpendType: 1, - UserInviteRecordId: inviteRecord.ID, - FirstInvite: 0, // TODO - Scan: 1, + Action: 1, // 未激活 + SpendType: 1, // 未开通 + UserInviteRecordId: inviteRecord.ID, // 邀请记录id + FirstInvite: 0, // TODO 首次邀请id + Scan: 1, // 扫码次数 } fmt.Println("创建邀请:", invite) //count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count() @@ -166,7 +163,7 @@ func AuthLogin(c *gin.Context) { } } - if inviteErr == nil { + if inviteErr == nil { // 邀请表有记录则更新邀请记录ID //err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater(). // SetFromUid(req.InviteUid).SetStoreId(inviteUser.StoreId).SetUserInviteRecordId(inviteRecord.ID).Update() err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().SetCreatedAt(nowTime). @@ -186,17 +183,17 @@ func AuthLogin(c *gin.Context) { MemberLevel: 1, //Notify: common.Yes, } - user.Uid = createUid() + user.Uid = createUid() // 新建uid var eg errgroup.Group - if req.InviteUid != 0 { + if req.InviteUid != 0 { // 如果入参有邀请人id,则新增2条邀请记录? inviteRecordFirst := &model.UserInviteRecord{ ToUid: user.Uid, FromUid: req.InviteUid, - Action: 2, + Action: 2, // 激活邀请 SpendType: 1, MemberLevel: 0, - First: 1, + First: 1, // 首次邀请 Scan: 1, ActionTime: nowTime, } @@ -308,29 +305,7 @@ func AuthLogin(c *gin.Context) { logger.Error(err) RespJson(c, status.InternalServerError, nil) } - //fmt.Println("JwtUserRefreshKey:", config.AppConfig.JwtUserRefreshKey) 79013845 - //fmt.Println("JwtUserRefreshExpire:", config.AppConfig.JwtUserRefreshExpire) - //newRefreshToken, err := auth.CreateToken(user.Uid, config.AppConfig.JwtUserRefreshKey, config.AppConfig.JwtUserRefreshExpire) - //if err != nil { - // logger.Error(err) - // RespJson(c, status.InternalServerError, nil) - // return - //} - //refreshToken := &model.UserRefreshToken{ - // Uid: user.Uid, - // Token: newRefreshToken, - //} - //err = refreshToken.Create(model.DB) - //if err != nil { - // logger.Error(err) - // RespJson(c, status.InternalServerError, nil) - // return - //} - //isNew := false - //// 用户没有授权 下次进入不会提示 - //if user.WxOpenID == "" { - // isNew = true - //} + newRefreshToken, err := auth.CreateToken(user.Uid, config.AppConfig.JwtUserRefreshKey, config.AppConfig.JwtUserRefreshExpire) if err != nil { logger.Error(err) @@ -345,8 +320,6 @@ func AuthLogin(c *gin.Context) { return } - //inviteCode := strconv.FormatUint(uint64(user.ID), 32) - err = model.NewUserQuerySet(model.DB).WxOpenIDEq(resp.OpenID).GetUpdater().SetLastLoginAt(time.Now()).Update() if err != nil && err != model.RecordNotFound { logger.Error(err) diff --git a/model/invite.go b/model/invite.go index 88e1971..0b03073 100644 --- a/model/invite.go +++ b/model/invite.go @@ -26,11 +26,11 @@ type UserInviteRecord struct { FromUid uint32 `json:"from_uid"` // 邀请人ID Action uint32 `json:"action"` // 1-未激活 2-激活邀请 SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级 - MemberLevel uint32 `json:"member_level"` // 会员等级 - MemberGenre uint32 `json:"member_genre"` // 会员类型 + MemberLevel uint32 `json:"member_level"` // 会员等级 0-未开通 1-普通 2-黄金 3-短期 4-白金 5-黑金 + MemberGenre uint32 `json:"member_genre"` // 会员类型 201-黄金季度 202-黄金半年 First uint32 `json:"first"` // 首次 Scan uint32 `json:"scan"` // 扫码 ActionTime time.Time `json:"action_time"` // 激活时间 - RenewHide uint32 `json:"renew_hide"` // 自动续费 + RenewHide uint32 `json:"renew_hide"` // 自动续费 1-自动 0-干预 // user_invite_record } diff --git a/pack/configs/dev/server.json b/pack/configs/dev/server.json index 9a95303..98af85e 100644 --- a/pack/configs/dev/server.json +++ b/pack/configs/dev/server.json @@ -23,10 +23,10 @@ }, "db": { "driver": "mysql", - "host": "39.108.188.218", + "host": "112.33.14.191", "port": 3306, "user": "mh_dev", - "password": "m5h4parZsXjbeiFh", + "password": "d9qy46ONI0ZTF9eH", "db_name": "mh_dev" }, "wx": { @@ -63,4 +63,4 @@ "db": 100 }, "xianmai_base_url": "https://testh5.xianmai.net.cn" -} \ No newline at end of file +} diff --git a/router/router_app.go b/router/router_app.go index abd6cab..7c7cbca 100644 --- a/router/router_app.go +++ b/router/router_app.go @@ -96,8 +96,8 @@ func ConfigAppRouter(r gin.IRouter) { user.POST("common_problem/list", controller.CommonProblemList) // 常见问题列表 //user.POST("service/wechat_id", controller.GetCustomerServiceWechatId) // 获取客服微信号 user.POST("invite_applet_code", controller.UserInviteAppletQRCode) // 小程序分享二维码 - user.POST("invite_list", controller.UserInviteList) // 小程序分享二维码 - user.POST("use_code_to_coupon", controller.UserCodeToCoupon) // 兑换5券 + user.POST("invite_list", controller.UserInviteList) // 小程序推广记录 + user.POST("use_code_to_coupon", controller.UserCodeToCoupon) // 兑换码兑换优惠券 } store := api.Group("store")