新增获取会员订单列表-最近下单
This commit is contained in:
parent
4b8671a765
commit
068830fff7
@ -264,3 +264,52 @@ func (b *OrderMember) GetOrderMemberPayStatus(c *gin.Context) {
|
|||||||
|
|
||||||
responses.OkWithData(g, c)
|
responses.OkWithData(g, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOrderMemberRecentList 获取会员订单列表-最近下单
|
||||||
|
func (b *OrderMember) GetOrderMemberRecentList(c *gin.Context) {
|
||||||
|
// 获取数据
|
||||||
|
orderMemberDao := dao.OrderMemberDao{}
|
||||||
|
|
||||||
|
maps := make(map[string]interface{})
|
||||||
|
maps["order_status"] = 2
|
||||||
|
maps["is_delete"] = 0
|
||||||
|
maps["pay_status"] = 2
|
||||||
|
orderMembers, err := orderMemberDao.GetOrderMemberPreloadOrderLimitList(maps, "created_at desc", 20)
|
||||||
|
if err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理返回值
|
||||||
|
g := make([]*dto.OrderMemberRecentListDto, len(orderMembers))
|
||||||
|
|
||||||
|
userDao := dao.UserDao{}
|
||||||
|
for i, member := range orderMembers {
|
||||||
|
response := &dto.OrderMemberRecentListDto{
|
||||||
|
OrderId: fmt.Sprintf("%d", member.OrderId),
|
||||||
|
UserId: fmt.Sprintf("%d", member.UserId),
|
||||||
|
SystemMemberId: fmt.Sprintf("%d", member.SystemMemberId),
|
||||||
|
CreatedAt: member.CreatedAt,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取用户数据
|
||||||
|
maps = make(map[string]interface{})
|
||||||
|
maps["user_id"] = member.UserId
|
||||||
|
user, err := userDao.GetUser(maps)
|
||||||
|
if err != nil {
|
||||||
|
responses.FailWithMessage(err.Error(), c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
response.UserName = user.UserName
|
||||||
|
|
||||||
|
response.MemberDays = member.SystemMember.MemberDays
|
||||||
|
|
||||||
|
// 处理时间
|
||||||
|
createdAt := time.Time(member.CreatedAt)
|
||||||
|
response.TimeDesc = utils.TimeToAgoString(createdAt)
|
||||||
|
|
||||||
|
g[i] = response
|
||||||
|
}
|
||||||
|
|
||||||
|
responses.OkWithData(g, c)
|
||||||
|
}
|
||||||
|
|||||||
@ -185,3 +185,21 @@ func (r *OrderMemberDao) GetUserFirstTimeBuyOrderMember(userId int64) (m *model.
|
|||||||
}
|
}
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOrderMemberOrderLimitList 获取列表-排序、限制数量
|
||||||
|
func (r *OrderMemberDao) GetOrderMemberOrderLimitList(maps interface{}, orderField string, limit int) (m []*model.OrderMember, err error) {
|
||||||
|
err = global.Db.Where(maps).Order(orderField).Limit(limit).Find(&m).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetOrderMemberPreloadOrderLimitList 获取列表-加载全部关联-排序、限制数量
|
||||||
|
func (r *OrderMemberDao) GetOrderMemberPreloadOrderLimitList(maps interface{}, orderField string, limit int) (m []*model.OrderMember, err error) {
|
||||||
|
err = global.Db.Preload(clause.Associations).Where(maps).Order(orderField).Limit(limit).Find(&m).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|||||||
@ -52,6 +52,17 @@ type OrderMemberPayStatusDto struct {
|
|||||||
ValidDate *model.LocalTime `json:"valid_date"` // 到期时间
|
ValidDate *model.LocalTime `json:"valid_date"` // 到期时间
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderMemberRecentListDto 会员订单列表-最近下单
|
||||||
|
type OrderMemberRecentListDto struct {
|
||||||
|
OrderId string `json:"order_id"` // 主键id
|
||||||
|
UserId string `json:"user_id"` // 用户id
|
||||||
|
SystemMemberId string `json:"system_member_id"` // 会员id
|
||||||
|
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||||||
|
UserName string `json:"user_name"` // 用户id
|
||||||
|
MemberDays uint `json:"member_days"` // 会员天数
|
||||||
|
TimeDesc string `json:"time_desc"` // 时间描述
|
||||||
|
}
|
||||||
|
|
||||||
// GetOrderMemberListDto 列表
|
// GetOrderMemberListDto 列表
|
||||||
func GetOrderMemberListDto(m []*model.OrderMember) []*OrderMemberDto {
|
func GetOrderMemberListDto(m []*model.OrderMember) []*OrderMemberDto {
|
||||||
// 处理返回值
|
// 处理返回值
|
||||||
@ -116,6 +127,28 @@ func GetOrderMemberPayStatus(m *model.OrderMember) *OrderMemberPayStatusDto {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOrderMemberRecentListDto 获取会员订单列表-最近下单
|
||||||
|
func GetOrderMemberRecentListDto(m []*model.OrderMember) []*OrderMemberRecentListDto {
|
||||||
|
// 处理返回值
|
||||||
|
responses := make([]*OrderMemberRecentListDto, len(m))
|
||||||
|
|
||||||
|
if len(m) > 0 {
|
||||||
|
for i, v := range m {
|
||||||
|
response := &OrderMemberRecentListDto{
|
||||||
|
OrderId: fmt.Sprintf("%d", v.OrderId),
|
||||||
|
UserId: fmt.Sprintf("%d", v.UserId),
|
||||||
|
SystemMemberId: fmt.Sprintf("%d", v.SystemMemberId),
|
||||||
|
CreatedAt: v.CreatedAt,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将转换后的结构体添加到新切片中
|
||||||
|
responses[i] = response
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return responses
|
||||||
|
}
|
||||||
|
|
||||||
// LoadSystemMember 加载会员数据
|
// LoadSystemMember 加载会员数据
|
||||||
func (r *OrderMemberDto) LoadSystemMember(m *model.SystemMember) *OrderMemberDto {
|
func (r *OrderMemberDto) LoadSystemMember(m *model.SystemMember) *OrderMemberDto {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
|||||||
@ -235,6 +235,7 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
|||||||
|
|
||||||
// 查询订单支付状态-单项
|
// 查询订单支付状态-单项
|
||||||
singleGroup.GET("/pay/status/:order_id", api.OrderSingle.GetOrderSinglePayStatus)
|
singleGroup.GET("/pay/status/:order_id", api.OrderSingle.GetOrderSinglePayStatus)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 会员订单
|
// 会员订单
|
||||||
@ -251,6 +252,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
|||||||
|
|
||||||
// 查询订单支付状态-会员
|
// 查询订单支付状态-会员
|
||||||
memberGroup.GET("/pay/status/:order_id", api.OrderMember.GetOrderMemberPayStatus)
|
memberGroup.GET("/pay/status/:order_id", api.OrderMember.GetOrderMemberPayStatus)
|
||||||
|
|
||||||
|
// 获取会员订单列表-最近下单
|
||||||
|
memberGroup.GET("/recent/list", api.OrderMember.GetOrderMemberRecentList)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
26
utils/tz.go
26
utils/tz.go
@ -1,6 +1,7 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"hepa-calc-api/api/model"
|
"hepa-calc-api/api/model"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -22,3 +23,28 @@ func StrToLocalTime(s string) (*model.LocalTime, error) {
|
|||||||
|
|
||||||
return &t, nil
|
return &t, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TimeToAgoString 根据给定的时间返回一个描述性的字符串
|
||||||
|
func TimeToAgoString(t time.Time) string {
|
||||||
|
now := time.Now()
|
||||||
|
diffTime := now.Sub(t)
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case diffTime < time.Minute:
|
||||||
|
return "1分钟前"
|
||||||
|
case diffTime < time.Hour:
|
||||||
|
minutes := int(diffTime.Minutes())
|
||||||
|
return fmt.Sprintf("%d分钟前", minutes)
|
||||||
|
case diffTime < 24*time.Hour:
|
||||||
|
return "一小时前"
|
||||||
|
case diffTime < 48*time.Hour:
|
||||||
|
return "两天前"
|
||||||
|
case diffTime < 72*time.Hour:
|
||||||
|
return "三天前"
|
||||||
|
case diffTime < 10*time.Hour*24:
|
||||||
|
days := int(diffTime.Hours()) / 24
|
||||||
|
return fmt.Sprintf("%d天前", days)
|
||||||
|
default:
|
||||||
|
return "十天前"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user