feat(admin): 新增管理后台前端资源文件 feat(api): 实现获取用户统计数据的API接口 - 添加获取用户道具卡数量、优惠券数量和积分余额的接口 - 实现设置默认地址和删除地址的接口 feat(service): 新增用户统计服务方法 - 实现GetUserStats方法查询用户统计数据 - 添加地址管理相关服务方法 fix(core): 修复静态资源路由问题 - 调整静态资源路由配置 - 优化404路由处理逻辑 chore: 更新前端构建配置 - 添加Windows平台构建命令 - 更新README构建说明
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package user
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type UserStats struct {
|
|
ItemCardCount int64 `json:"item_card_count"`
|
|
CouponCount int64 `json:"coupon_count"`
|
|
PointsBalance int64 `json:"points_balance"`
|
|
}
|
|
|
|
func (s *service) GetUserStats(ctx context.Context, userID int64) (*UserStats, error) {
|
|
var itemCardCount int64
|
|
var couponCount int64
|
|
var pointsBalance int64
|
|
|
|
icq := s.readDB.UserItemCards.WithContext(ctx).ReadDB().Where(s.readDB.UserItemCards.UserID.Eq(userID), s.readDB.UserItemCards.Status.Eq(1))
|
|
if c, err := icq.Count(); err != nil {
|
|
return nil, err
|
|
} else {
|
|
itemCardCount = c
|
|
}
|
|
|
|
cq := s.readDB.UserCoupons.WithContext(ctx).ReadDB().Where(s.readDB.UserCoupons.UserID.Eq(userID), s.readDB.UserCoupons.Status.Eq(1))
|
|
if c, err := cq.Count(); err != nil {
|
|
return nil, err
|
|
} else {
|
|
couponCount = c
|
|
}
|
|
|
|
pb, err := s.GetPointsBalance(ctx, userID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
pointsBalance = pb
|
|
|
|
return &UserStats{ItemCardCount: itemCardCount, CouponCount: couponCount, PointsBalance: pointsBalance}, nil
|
|
} |