Compare commits

...

4 Commits

Author SHA1 Message Date
e40e23f091 🎨 修改Dockerfile 2024-07-03 17:15:53 +08:00
2728a32064 🎨 修改订阅消息模板id 2024-07-03 17:07:51 +08:00
61c0aaa35a 🎨 优化查询当日提醒接口 2024-05-09 18:06:45 +08:00
39191484e5 🎨 新增查询当日提醒接口 2024-04-26 13:23:20 +08:00
7 changed files with 71 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
FROM golang:alpine as builder FROM dockerproxy.com/library/golang:alpine as builder
WORKDIR /go/src/miniapp WORKDIR /go/src/miniapp
COPY . . COPY . .
@@ -10,7 +10,7 @@ RUN go env -w GO111MODULE=on \
&& go mod tidy \ && go mod tidy \
&& go build -o server . && go build -o server .
FROM alpine:latest FROM dockerproxy.com/library/alpine:latest
WORKDIR /go/src/miniapp WORKDIR /go/src/miniapp
COPY --from=0 /go/src/miniapp/server ./ COPY --from=0 /go/src/miniapp/server ./

View File

@@ -10,6 +10,7 @@ import (
"miniapp/model/common/request" "miniapp/model/common/request"
r "miniapp/model/common/response" r "miniapp/model/common/response"
"strconv" "strconv"
"time"
) )
type TodosApi struct{} type TodosApi struct{}
@@ -56,3 +57,50 @@ func (t TodosApi) UpdateTodo(ctx *gin.Context) {
} }
r.Ok(ctx) r.Ok(ctx)
} }
// GetTodayTodos 获取今日待办
func (t TodosApi) GetTodayTodos(ctx *gin.Context) {
var p request.GetUserNotes
if err := ctx.ShouldBind(&p); err != nil {
r.FailWithMessage("参数错误:"+err.Error(), ctx)
global.GVA_LOG.Error("参数错误", zap.Error(err))
return
}
var ue app.User
if api.GetUser(ctx, &ue, false, true); ctx.IsAborted() {
return
}
p.UserId = strconv.Itoa(int(ue.ID))
list, err := todosService.GetTodayTodos(&p)
if err != nil {
r.FailWithMessage("获取Todo列表失败:"+err.Error(), ctx)
global.GVA_LOG.Error("获取Todo列表失败", zap.Error(err))
return
}
todos := make([]common.UserTodo, 0)
hour := time.Now().Hour()
for i := range list {
//将remind_time截取前两位 转为int
rt, _ := strconv.Atoi(list[i].RemindTime[:2])
rt2 := 24
if i+1 == len(list) {
rt2, _ = strconv.Atoi(list[len(list)-1].RemindTime[:2])
} else {
rt2, _ = strconv.Atoi(list[i+1].RemindTime[:2])
}
if hour >= rt && hour <= rt2 {
todos = append(todos, list[i])
}
}
//删除todos第一个元素
if len(todos) > 0 {
todos = todos[1:]
}
r.OkWithData(todos, ctx)
}

View File

@@ -2,7 +2,7 @@ package request
type GetUserNotes struct { type GetUserNotes struct {
UserId string `json:"userId" form:"userId" binding:"required"` UserId string `json:"userId" form:"userId" binding:"required"`
IsFinish string `json:"isFinish" form:"isFinish" binding:"required"` IsFinish string `json:"isFinish" form:"isFinish"`
} }
type TodoTask struct { type TodoTask struct {

View File

@@ -24,7 +24,7 @@ func (s *LoginRouter) InitUserRouter(Router *gin.RouterGroup) {
userRouter.GET("", baseApi.GetUser) userRouter.GET("", baseApi.GetUser)
userRouter.GET("todo", todoApi.GetUserTodos) userRouter.GET("todo", todoApi.GetUserTodos)
userRouter.PUT("todo", todoApi.UpdateTodo) userRouter.PUT("todo", todoApi.UpdateTodo)
userRouter.GET("todo/today", todoApi.GetTodayTodos)
userRouter.POST("msg", baseApi.SendMedicineRemind) userRouter.POST("msg", baseApi.SendMedicineRemind)
} }

View File

@@ -4,6 +4,7 @@ import (
"miniapp/global" "miniapp/global"
"miniapp/model/common" "miniapp/model/common"
"miniapp/model/common/request" "miniapp/model/common/request"
"time"
) )
type TodesService struct{} type TodesService struct{}
@@ -18,3 +19,12 @@ func (t TodesService) UpdateTodoById(c *common.UserTodo) error {
return global.GVA_DB.Table("t_user_todo").Where("id = ?", c.ID).Update("is_finish", c.IsFinish).Error return global.GVA_DB.Table("t_user_todo").Where("id = ?", c.ID).Update("is_finish", c.IsFinish).Error
} }
// GetTodayTodos 获取今日待办
func (t TodesService) GetTodayTodos(notes *request.GetUserNotes) (list []common.UserTodo, err error) {
// 获取当前时间
nowTime := time.Now().Format("2006-01-02")
err = global.GVA_DB.Where("user_id = ? and is_finish = 0 and remind_day = ?", notes.UserId, nowTime).Find(&list).Error
return
}

View File

@@ -18,7 +18,7 @@ func CheckUserSurgeryDate() {
global.GVA_DB.Model(&app.User{}).Find(&users) global.GVA_DB.Model(&app.User{}).Find(&users)
for _, user := range users { for _, user := range users {
parse, _ := time.Parse("2006-01-02", user.SurgeryTime) parse, _ := time.Parse("2006-01-02", user.SurgeryTime)
if time.Now().Sub(parse).Hours()/24 == 0 { if time.Now().Local().Sub(parse.Local()).Hours()/24 <= 1 {
global.GVA_DB.Model(&app.User{}).Where("id = ?", user.ID).Updates(app.User{IsSurgery: 1}) global.GVA_DB.Model(&app.User{}).Where("id = ?", user.ID).Updates(app.User{IsSurgery: 1})
} }
} }

View File

@@ -74,17 +74,19 @@ func MiniappSendMsg(userId string, utId string) {
//判断context是否超过20个字符 //判断context是否超过20个字符
if len(ut.Content)/3 >= 19 { if len(ut.Content)/3 >= 19 {
text := strings.Split(ut.Content, "药品") text := strings.Split(ut.Content, "药品")
text = text[1:]
for i := 1; i < len(text); i++ { for i := 1; i < len(text); i++ {
msgData := msg.SendRequest{ msgData := msg.SendRequest{
ToUser: user.WechatOpenId, ToUser: user.WechatOpenId,
TemplateID: "PgxoZOOSDgBcmIGd_EVLDnYUmL3eu6NQTAZCsHQeuWY", TemplateID: "BKyIwkt7HHEQoQ9ByrHqnHaGO5jq8d-MCp9YYGK23TE",
Page: "/pages/index/done", Page: "/pages/index/done",
MiniprogramState: msg.MiniprogramStateTrial, MiniprogramState: msg.MiniprogramStateTrial,
Data: msg.SendData{ Data: msg.SendData{
"thing1": msg.SendValue{Value: text[i]}, "thing2": msg.SendValue{Value: text[i]},
"time2": msg.SendValue{Value: ut.RemindTime}, "time6": msg.SendValue{Value: ut.RemindTime},
"short_thing17": msg.SendValue{Value: ut.Frequency}, "thing8": msg.SendValue{Value: ut.Frequency},
"time15": msg.SendValue{Value: time.Now().Format("2006-01-02 15:04:05")}, "thing3": msg.SendValue{Value: "用药详情请进入小程序待完成事项中查看"},
//"time15": msg.SendValue{Value: time.Now().Format("2006-01-02 15:04:05")},
}, },
} }
@@ -93,7 +95,7 @@ func MiniappSendMsg(userId string, utId string) {
} else { } else {
msgData := msg.SendRequest{ msgData := msg.SendRequest{
ToUser: user.WechatOpenId, ToUser: user.WechatOpenId,
TemplateID: "PgxoZOOSDgBcmIGd_EVLDnYUmL3eu6NQTAZCsHQeuWY", TemplateID: "BKyIwkt7HHEQoQ9ByrHqnHaGO5jq8d-MCp9YYGK23TE",
Page: "/pages/index/done", Page: "/pages/index/done",
MiniprogramState: msg.MiniprogramStateTrial, MiniprogramState: msg.MiniprogramStateTrial,
Data: msg.SendData{ Data: msg.SendData{