diff --git a/api/controller/Question.go b/api/controller/Question.go index e563489..7fdf168 100644 --- a/api/controller/Question.go +++ b/api/controller/Question.go @@ -109,8 +109,8 @@ func (r *Question) GetQuestion(c *gin.Context) { userCollectionService := service.UserCollectionService{} IsCollection := userCollectionService.GetUserCollectionQuestionStatus(userId, questionId) - // 获取用户首次购买价格 - firstTimePrice, err := questionService.GetUserFirstTimeBuyPrice(userId, questionId) + // 获取用户首单价格 + firstTimePrice, err := questionService.GetUserFirstTimeBuyPrice(userId) if err != nil { responses.FailWithMessage("题目错误", c) return diff --git a/api/controller/SystemMember.go b/api/controller/SystemMember.go index 2b61cf1..432d467 100644 --- a/api/controller/SystemMember.go +++ b/api/controller/SystemMember.go @@ -26,7 +26,7 @@ func (b *SystemMember) GetSystemMember(c *gin.Context) { // 检测用户是否购买过会员 userService := service.UserService{} - isBuy := userService.CheckUserBuyOrderMember(userId) + isBuy := userService.CheckUserBuyMember(userId) if isBuy == true { for _, member := range systemMembers { fmt.Println(member) diff --git a/api/dao/OrderSingle.go b/api/dao/OrderSingle.go index 4f8c614..71f1884 100644 --- a/api/dao/OrderSingle.go +++ b/api/dao/OrderSingle.go @@ -184,10 +184,9 @@ func (r *OrderSingleDao) GetOrderSinglePageSearch(req requests.GetOrderSinglePag } // GetUserFirstTimeBuyOrderSingle 获取用户首次购买的订单 -func (r *OrderSingleDao) GetUserFirstTimeBuyOrderSingle(userId, questionId int64) (m *model.OrderSingle, err error) { +func (r *OrderSingleDao) GetUserFirstTimeBuyOrderSingle(userId int64) (m *model.OrderSingle, err error) { err = global.Db. Where("user_id = ?", userId). - Where("question_id = ?", questionId). Where("order_status != ?", 3). First(&m).Error if err != nil { diff --git a/api/requests/Login.go b/api/requests/Login.go index 2a50c03..2353fec 100644 --- a/api/requests/Login.go +++ b/api/requests/Login.go @@ -14,6 +14,6 @@ type LoginWx struct { // LoginPhone 手机号登录 type LoginPhone struct { Mobile string `json:"mobile" form:"mobile" label:"手机号" validate:"required"` - Code string `json:"code" form:"code" label:"手机号" validate:"required"` - Source int `json:"source" form:"source" label:"来源)" validate:"required"` // (1:app 2:公众号 + Code string `json:"code" form:"code" label:"验证码" validate:"required"` + Source int `json:"source" form:"source" label:"来源" validate:"required"` // (1:app 2:公众号 } diff --git a/api/service/OrderMember.go b/api/service/OrderMember.go index 822adb5..fddef3b 100644 --- a/api/service/OrderMember.go +++ b/api/service/OrderMember.go @@ -85,7 +85,7 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId if UserCouponId != nil { // 检测用户是否购买过会员 userService := &UserService{} - isBuy := userService.CheckUserBuyOrderMember(UserId) + isBuy := userService.CheckUserBuyMember(UserId) if isBuy == true { // 已购买过会员,无法使用优惠卷 return nil, errors.New("优惠券异常") diff --git a/api/service/Question.go b/api/service/Question.go index c64cdf4..a8b42f8 100644 --- a/api/service/Question.go +++ b/api/service/Question.go @@ -97,7 +97,12 @@ func (r *QuestionService) CheckUserCollectionQuestion(userId, questionId int64) // CheckUserBuyQuestion 检测用户是否购买过该问题 func (r *QuestionService) CheckUserBuyQuestion(userId, questionId int64) bool { orderSingleDao := dao.OrderSingleDao{} - orderSingle, _ := orderSingleDao.GetUserFirstTimeBuyOrderSingle(userId, questionId) + + maps := make(map[string]interface{}) + maps["user_id"] = userId + maps["question_id"] = questionId + maps["order_status"] = 3 + orderSingle, _ := orderSingleDao.GetOrderSingle(maps) if orderSingle == nil { return false } @@ -105,11 +110,12 @@ func (r *QuestionService) CheckUserBuyQuestion(userId, questionId int64) bool { return true } -// GetUserFirstTimeBuyPrice 获取用户首次购买价格 -func (r *QuestionService) GetUserFirstTimeBuyPrice(userId, questionId int64) (f *float64, err error) { - // 检测用户是否购买过该问题 - isFirstBuy := r.CheckUserBuyQuestion(userId, questionId) - if isFirstBuy == false { +// GetUserFirstTimeBuyPrice 获取用户首单价格 +func (r *QuestionService) GetUserFirstTimeBuyPrice(userId int64) (f *float64, err error) { + // 检测用户是否购买过单项产品 + userService := &UserService{} + isBuy := userService.CheckUserBuySingle(userId) + if isBuy == false { // 未购买过 systemSingleDao := dao.SystemSingleDao{} @@ -152,9 +158,10 @@ func (r *QuestionService) GetUserBuyPrice(userId, questionId int64) (p *float64, return nil, errors.New("题目异常") } - // 检测用户是否购买过该问题 - isFirstBuy := r.CheckUserBuyQuestion(userId, questionId) - if isFirstBuy == false { + // 检测用户是否购买过单项产品 + userService := &UserService{} + isBuy := userService.CheckUserBuySingle(userId) + if isBuy == false { // 未购买过 systemSingleDao := dao.SystemSingleDao{} diff --git a/api/service/User.go b/api/service/User.go index fbc068b..b8b72a6 100644 --- a/api/service/User.go +++ b/api/service/User.go @@ -73,8 +73,8 @@ func (r *UserService) CheckUserMember(user *model.User) bool { return true } -// CheckUserBuyOrderMember 检测用户是否购买过会员 -func (r *UserService) CheckUserBuyOrderMember(userId int64) bool { +// CheckUserBuyMember 检测用户是否购买过会员 +func (r *UserService) CheckUserBuyMember(userId int64) bool { orderMemberDao := dao.OrderMemberDao{} orderMember, _ := orderMemberDao.GetUserFirstTimeBuyOrderMember(userId) if orderMember == nil { @@ -84,6 +84,21 @@ func (r *UserService) CheckUserBuyOrderMember(userId int64) bool { return true } +// CheckUserBuySingle 检测用户是否购买过单项产品 +func (r *UserService) CheckUserBuySingle(userId int64) bool { + orderSingleDao := dao.OrderSingleDao{} + + maps := make(map[string]interface{}) + maps["user_id"] = userId + maps["order_status"] = 3 + orderSingle, _ := orderSingleDao.GetOrderSingle(maps) + if orderSingle == nil { + return false + } + + return true +} + // AddUserMemberValidDate 增加用户会员过期时间 func (r *UserService) AddUserMemberValidDate(tx *gorm.DB, user *model.User, d int) bool { userData := make(map[string]interface{}) diff --git a/api/service/UserCoupon.go b/api/service/UserCoupon.go index 6648575..0a06344 100644 --- a/api/service/UserCoupon.go +++ b/api/service/UserCoupon.go @@ -145,6 +145,13 @@ func (r *UserCouponService) GetUserUsableQuestionCoupon(userId, questionId int64 return nil, errors.New("优惠券异常") } + // 检测用户是否购买过单项产品 + isBuy := userService.CheckUserBuySingle(userId) + if isBuy == false { + // 未购买过-不允许使用优惠卷,强行使用首单优惠价格 + return nil, nil + } + //定义返回数据 var responses []*model.UserCoupon