🎨 优化用户和分类相关接口,新增banner接口

This commit is contained in:
2025-06-23 17:04:44 +08:00
parent a5ae680f94
commit cf0f60d221
29 changed files with 695 additions and 299 deletions

67
service/app/banner.go Normal file
View File

@@ -0,0 +1,67 @@
package app
import (
"git.echol.cn/loser/lckt/global"
"git.echol.cn/loser/lckt/model/app"
"go.uber.org/zap"
)
type BannerService struct{}
// CreateBanner 创建Banner
func (b *BannerService) CreateBanner(p app.Banner) (err error) {
if err = global.GVA_DB.Create(&p).Error; err != nil {
global.GVA_LOG.Error("创建Banner失败!", zap.Error(err))
return
}
return
}
// DeleteBanner 删除Banner
func (b *BannerService) DeleteBanner(id uint) (err error) {
if err = global.GVA_DB.Delete(&app.Banner{}, id).Error; err != nil {
global.GVA_LOG.Error("删除Banner失败!", zap.Error(err))
return
}
return
}
// UpdateBanner 更新Banner
func (b *BannerService) UpdateBanner(p app.Banner) (err error) {
if err = global.GVA_DB.Save(&p).Error; err != nil {
global.GVA_LOG.Error("更新Banner失败!", zap.Error(err))
return
}
return
}
// GetBannerList 获取Banner列表
func (b *BannerService) GetBannerList(page, pageSize int) (list []app.Banner, total int64, err error) {
if err = global.GVA_DB.Model(&app.Banner{}).Count(&total).Error; err != nil {
global.GVA_LOG.Error("获取Banner总数失败!", zap.Error(err))
return
}
if err = global.GVA_DB.Limit(pageSize).Offset((page - 1) * pageSize).Find(&list).Error; err != nil {
global.GVA_LOG.Error("获取Banner列表失败!", zap.Error(err))
return
}
return
}
// GetBannerByID 根据ID获取Banner
func (b *BannerService) GetBannerByID(id int) (banner app.Banner, err error) {
if err = global.GVA_DB.First(&banner, id).Error; err != nil {
global.GVA_LOG.Error("获取Banner失败!", zap.Error(err))
return
}
return
}
func (b *BannerService) GetBannerIndex() (list []app.Banner, err error) {
if err = global.GVA_DB.Where("status = ?", 1).Order("created_at desc").Find(&list).Error; err != nil {
global.GVA_LOG.Error("获取Banner失败!", zap.Error(err))
return
}
return
}

6
service/app/enter.go Normal file
View File

@@ -0,0 +1,6 @@
package app
type ServiceGroup struct {
AppUserService
BannerService
}

112
service/app/user.go Normal file
View File

@@ -0,0 +1,112 @@
package app
import (
"fmt"
"git.echol.cn/loser/lckt/global"
"git.echol.cn/loser/lckt/model/app/vo"
"git.echol.cn/loser/lckt/model/user"
"git.echol.cn/loser/lckt/model/user/request"
"github.com/ArtisanCloud/PowerSocialite/v3/src/providers"
"go.uber.org/zap"
"golang.org/x/crypto/bcrypt"
)
type AppUserService struct{}
// Login 用户登录
func (u *AppUserService) Login(req request.CodeLoginReq) (users user.User, err error) {
// 1. 判断用户是否存在
var count int64
err = global.GVA_DB.Model(&user.User{}).Where("phone = ?", req.Phone).Count(&count).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return
}
// 2. 如果用户不存在,则创建用户
if count == 0 {
user := user.User{
Phone: req.Phone,
UserLabel: 1,
}
err = global.GVA_DB.Save(&user).Error
if err != nil {
global.GVA_LOG.Error("创建用户失败", zap.Error(err))
return
}
} else {
err = global.GVA_DB.Where("phone = ?", req.Phone).First(&users).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return
}
}
return
}
// WechatLogin 微信登录
func (u *AppUserService) WechatLogin(info *providers.User) (users user.User, err error) {
openID := info.GetOpenID()
var count int64
// 1. 判断用户是否存在
err = global.GVA_DB.Model(&users).Where("open_id = ?", openID).Count(&count).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return
}
if count == 0 {
newUser := user.User{
OpenId: openID,
NickName: info.GetNickname(),
Avatar: info.GetAvatar(),
}
err = global.GVA_DB.Save(&newUser).Error
if err != nil {
global.GVA_LOG.Error("创建用户失败", zap.Error(err))
return
}
return newUser, nil
} else {
err = global.GVA_DB.Where("open_id = ?", openID).First(&users).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return
}
}
return
}
// PwdLogin 用户密码登录
func (u *AppUserService) PwdLogin(req request.PwdLoginReq) (users user.User, err error) {
// 1. 判断用户是否存在
var count int64
err = global.GVA_DB.Model(&user.User{}).Where("phone = ?", req.Phone).First(&users).Count(&count).Error
if err != nil {
global.GVA_LOG.Error("查询用户失败", zap.Error(err))
return
}
if count == 0 {
global.GVA_LOG.Error("用户不存在")
err = fmt.Errorf("用户不存在")
return
}
// 2. 判断密码是否正确
err = bcrypt.CompareHashAndPassword([]byte(users.Password), []byte(req.Password))
if err != nil {
global.GVA_LOG.Error("密码错误", zap.Error(err))
return
}
return
}
func (u *AppUserService) GetUserInfo(id uint) (info vo.UserInfo, err error) {
err = global.GVA_DB.Model(&user.User{}).Where("id = ?", id).First(&info).Error
if err != nil {
global.GVA_LOG.Error("查询用户信息失败", zap.Error(err))
return
}
return
}