This commit is contained in:
2024-07-29 08:58:07 +08:00
parent 5dd3c44917
commit 73e41552e4
20 changed files with 638 additions and 28 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ type OrderMemberService struct {
// AddOrderMember 创建会员订单
func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId int64, UserCouponId *int64, payChannel int, orderPrice float64) (orderMember *model.OrderMember, err error) {
// 检测多次请求
// 检测并发请求
redisKey := "AddOrderMember" + fmt.Sprintf("%d", UserId) + fmt.Sprintf("%d", SystemMemberId)
res, _ := global.Redis.Get(context.Background(), redisKey).Result()
if res != "" {
+35 -1
View File
@@ -20,8 +20,9 @@ type OrderSingleService struct {
}
// AddOrderSingle 创建单项订单
// payChannel:支付渠道(1:h5支付 2:app支付 3:会员支付)
func (r *OrderSingleService) AddOrderSingle(tx *gorm.DB, UserId, QuestionId int64, UserCouponId *int64, payChannel int, orderPrice float64) (orderSingle *model.OrderSingle, err error) {
// 检测多次请求
// 检测并发请求
redisKey := "AddOrderSingle" + fmt.Sprintf("%d", UserId) + fmt.Sprintf("%d", QuestionId)
res, _ := global.Redis.Get(context.Background(), redisKey).Result()
if res != "" {
@@ -343,3 +344,36 @@ func (r *OrderSingleService) GetAppPrepay(m *model.OrderSingle) (prepay *app.Pre
return prepay, nil
}
// CompleteUnPayOrderSingle 完成未支付单项订单-开通会员成功时使用
func (r *OrderSingleService) CompleteUnPayOrderSingle(tx *gorm.DB, userId int64) (bool, error) {
// 获取所有未支付单项订单
orderSingleDao := dao.OrderSingleDao{}
maps := make(map[string]interface{})
maps["user_id"] = userId
maps["order_status"] = 1
maps["pay_status"] = 1
maps["cancel_status"] = 0
orderSingles, err := orderSingleDao.GetOrderSingleList(maps)
if err != nil {
return false, err
}
for _, single := range orderSingles {
// 生成第三方支付流水号
escrowTradeNo := "GD" + global.Snowflake.Generate().String()
orderSingleData := make(map[string]interface{})
orderSingleData["order_status"] = 2
orderSingleData["pay_status"] = 2
orderSingleData["pay_time"] = time.Now().Format("2006-01-02 15:04:05")
orderSingleData["escrow_trade_no"] = escrowTradeNo
orderSingleData["updated_at"] = time.Now().Format("2006-01-02 15:04:05")
err = orderSingleDao.EditOrderSingleById(tx, single.OrderId, orderSingleData)
if err != nil {
return false, err
}
}
return true, nil
}
+23
View File
@@ -3,6 +3,7 @@ package service
import (
"errors"
"fmt"
"gorm.io/gorm"
"hepa-calc-api/api/dao"
"hepa-calc-api/api/model"
"hepa-calc-api/extend/aliyun"
@@ -82,3 +83,25 @@ func (r *UserService) CheckUserBuyOrderMember(userId int64) bool {
return true
}
// AddUserMemberValidDate 增加用户会员过期时间
func (r *UserService) AddUserMemberValidDate(tx *gorm.DB, user *model.User, d int) bool {
userData := make(map[string]interface{})
if user.IsMember == 0 {
userData["is_member"] = 1
}
if user.MemberExpireDate == nil {
userData["is_member"] = time.Now().Format("2006-01-02 15:04:05")
} else {
userData["is_member"] = user.MemberExpireDate.Add(time.Duration(d) * 24 * time.Hour)
}
userDao := dao.UserDao{}
err := userDao.EditUserById(tx, user.UserId, userData)
if err != nil {
return false
}
return true
}