diff --git a/api/v1/app/user.go b/api/v1/app/user.go index 529a689..2db7aff 100644 --- a/api/v1/app/user.go +++ b/api/v1/app/user.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" common "git.echol.cn/loser/lckt/model/common/request" + "gorm.io/gorm" "strconv" "time" @@ -283,6 +284,11 @@ func (a *AppUserApi) GetTeacherApply(context *gin.Context) { } status, err := appUserService.GetTeacherApplyStatus(id) + // 判断是否是记录未找到的错误 + if errors.Is(err, gorm.ErrRecordNotFound) { + r.OkWithMessage("暂无申请记录", context) + return + } if err != nil { global.GVA_LOG.Error("获取教师申请状态失败", zap.Error(err)) r.FailWithMessage("获取教师申请状态失败", context) diff --git a/initialize/router.go b/initialize/router.go index 8ceb4e4..3cdb58f 100644 --- a/initialize/router.go +++ b/initialize/router.go @@ -119,7 +119,7 @@ func Routers() *gin.Engine { { appRouter.InitAppUserRouter(AppAuthGroup, PublicGroup) appRouter.InitBannerRouter(PrivateGroup, PublicGroup) // Banner相关路由 - appRouter.InitOrderRouter(AppAuthGroup) // 订单相关路由 + appRouter.InitOrderRouter(AppAuthGroup, PublicGroup) // 订单相关路由 } //插件路由安装 diff --git a/model/common/response/response.go b/model/common/response/response.go index a429b12..d5ba72d 100644 --- a/model/common/response/response.go +++ b/model/common/response/response.go @@ -13,7 +13,7 @@ type Response struct { } const ( - ERROR = 7 + ERROR = 5 SUCCESS = 0 ) diff --git a/router/app/order.go b/router/app/order.go index b9baece..1373366 100644 --- a/router/app/order.go +++ b/router/app/order.go @@ -5,14 +5,17 @@ import "github.com/gin-gonic/gin" type OrderRouter struct{} // InitOrderRouter 初始化订单路由 -func (r *OrderRouter) InitOrderRouter(AppRouter *gin.RouterGroup) { +func (r *OrderRouter) InitOrderRouter(AppRouter, PublicRouter *gin.RouterGroup) { appRouter := AppRouter.Group("app_order") + publicRouter := PublicRouter.Group("app_order") { appRouter.POST("", orderApi.CreateOrder) // 创建订单 appRouter.POST("/wechat/pay", orderApi.PayOrder) // 微信支付订单 appRouter.GET("/list", orderApi.GetOrderList) // 获取订单列表 appRouter.GET(":id", orderApi.GetOrderDetail) // 获取订单详情 appRouter.POST("/balance/pay", orderApi.BalancePay) // 余额支付 - appRouter.POST("/notify", orderApi.NotifyOrder) // 微信支付回调通知 + } + { + publicRouter.POST("/notify", orderApi.NotifyOrder) // 微信支付回调通知 } } diff --git a/service/app/user.go b/service/app/user.go index 16df799..f1e9eac 100644 --- a/service/app/user.go +++ b/service/app/user.go @@ -1,6 +1,7 @@ package app import ( + "errors" "fmt" "git.echol.cn/loser/lckt/global" "git.echol.cn/loser/lckt/model/app" @@ -166,12 +167,13 @@ func (u *AppUserService) ApplyTeacher(p app.TeacherApply) (err error) { return nil } -func (u *AppUserService) GetTeacherApplyStatus(id uint) (teacherApply app.TeacherApply, err error) { +func (u *AppUserService) GetTeacherApplyStatus(id uint) (teacherApply *app.TeacherApply, err error) { // 获取最后一条申请记录 err = global.GVA_DB.Model(&app.TeacherApply{}).Where("user_id = ?", id).Last(&teacherApply).Error - if err != nil { - global.GVA_LOG.Error("查询申请记录失败", zap.Error(err)) - return teacherApply, err + // 判断是否是记录未找到的错误 + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { + global.GVA_LOG.Error("查询申请信息失败", zap.Error(err)) + return } return diff --git a/service/article/article.go b/service/article/article.go index 6480238..ea542cc 100644 --- a/service/article/article.go +++ b/service/article/article.go @@ -35,6 +35,17 @@ func (ArticleService) GetArticleList(pageInfo request.GetList) (list []article.A offset := pageInfo.PageSize * (pageInfo.Page - 1) // 创建db db := global.GVA_DB.Model(&article.Article{}) + + if pageInfo.Title != "" { + db = db.Where("title LIKE ?", "%"+pageInfo.Title+"%") + } + if pageInfo.CategoryId != 0 { + db = db.Where("category_id = ?", pageInfo.CategoryId) + } + if pageInfo.TeacherId != 0 { + db = db.Where("teacher_id = ?", pageInfo.TeacherId) + } + err = db.Count(&total).Error if err != nil { return diff --git a/test/rain_test.go b/test/rain_test.go index 4568c4b..19d44e0 100644 --- a/test/rain_test.go +++ b/test/rain_test.go @@ -1,18 +1,34 @@ package test import ( + "crypto/md5" "fmt" - "git.echol.cn/loser/lckt/utils/sms" "golang.org/x/crypto/bcrypt" "math/rand" + "net/http" + "net/url" "testing" "time" ) +const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + func TestRain(t *testing.T) { - rand.New(rand.NewSource(time.Now().UnixNano())) - verifyCode := fmt.Sprintf("%06v", rand.Int31n(1000000)) - fmt.Println(verifyCode) + num := GenerateOrderNum() + fmt.Println("生成的订单号:", num) +} + +func GenerateOrderNum() string { + rand.Seed(time.Now().UnixNano()) + // 拼接用户ID和随机数 + data := fmt.Sprintf("%d%d", 6, rand.Intn(1000000)) + hash := md5.Sum([]byte(data)) + code := "" + for i := 0; i < 12; i++ { + // 取哈希的前6位,每位映射到字符集 + code += string(charset[int(hash[i])%len(charset)]) + } + return code } func TestPwd(t *testing.T) { @@ -28,14 +44,30 @@ func TestPwd(t *testing.T) { } func TestCode(t *testing.T) { - // 测试验证码生成 rand.New(rand.NewSource(time.Now().UnixNano())) verifyCode := fmt.Sprintf("%06v", rand.Int31n(1000000)) + // 测试验证码生成 + sendCode(verifyCode) +} - test := sms.SendSMSTest("17754945397", verifyCode) - if test { - fmt.Println("短信发送成功") +func sendCode(code string) { + // 内容 通过urlEncode编码 + content := "【海口龙华铁坚成电子商务商行】您的验证码是" + code + "。如非本人操作,请忽略本短信" + // urlencode编码内容 + content = url.QueryEscape(content) + + api := "https://api.smsbao.com/sms?u=lchz5599&p=7ea114c87a224cd38a0d616b9be3faed&g=海口龙华铁坚成电子商务商行&m=17754945397&c=" + content + + // 发送GET请求 + resp, err := http.Get(api) + if err != nil { + fmt.Println("请求失败:", err) + return + } + defer resp.Body.Close() + if resp.StatusCode == http.StatusOK { + fmt.Println("请求成功,短信发送成功") } else { - fmt.Println("短信发送失败") + fmt.Println("请求失败,状态码:", resp.StatusCode) } }