88 lines
3.0 KiB
Go
88 lines
3.0 KiB
Go
// ==========================================================================
|
||
// GFast自动生成controller操作代码。
|
||
// 生成日期:2024-07-26 15:32:12
|
||
// 生成路径: internal/app/system/controller/user_registration.go
|
||
// 生成人:gfast
|
||
// desc:极光推送
|
||
// company:云南奇讯科技有限公司
|
||
// ==========================================================================
|
||
|
||
package controller
|
||
|
||
import (
|
||
"context"
|
||
"errors"
|
||
|
||
"github.com/tiger1103/gfast/v3/api/v1/system"
|
||
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||
ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
|
||
"github.com/tiger1103/gfast/v3/internal/app/system/service"
|
||
)
|
||
|
||
type userRegistrationController struct {
|
||
BaseController
|
||
}
|
||
|
||
var UserRegistration = new(userRegistrationController)
|
||
|
||
// List 列表
|
||
func (c *userRegistrationController) List(ctx context.Context, req *system.UserRegistrationSearchReq) (res *system.UserRegistrationSearchRes, err error) {
|
||
res, err = service.UserRegistration().List(ctx, req)
|
||
return
|
||
}
|
||
|
||
// Get 获取极光推送
|
||
func (c *userRegistrationController) Get(ctx context.Context, req *system.UserRegistrationGetReq) (res *system.UserRegistrationGetRes, err error) {
|
||
res = new(system.UserRegistrationGetRes)
|
||
res.UserRegistrationInfoRes, err = service.UserRegistration().GetById(ctx, req.Id)
|
||
return
|
||
}
|
||
|
||
// Add 添加极光推送
|
||
func (c *userRegistrationController) Add(ctx context.Context, req *system.UserRegistrationAddReq) (res *system.UserRegistrationAddRes, err error) {
|
||
err = service.UserRegistration().Add(ctx, req)
|
||
return
|
||
}
|
||
|
||
// Edit 修改极光推送
|
||
func (c *userRegistrationController) Edit(ctx context.Context, req *system.UserRegistrationEditReq) (res *system.UserRegistrationEditRes, err error) {
|
||
err = service.UserRegistration().Edit(ctx, req)
|
||
return
|
||
}
|
||
|
||
// Delete 删除极光推送
|
||
func (c *userRegistrationController) Delete(ctx context.Context, req *system.UserRegistrationDeleteReq) (res *system.UserRegistrationDeleteRes, err error) {
|
||
err = service.UserRegistration().Delete(ctx, req.Ids)
|
||
return
|
||
}
|
||
|
||
// 为当前用户设备绑定极光推送
|
||
func (c *userRegistrationController) BindRegistration(ctx context.Context, req *system.UserRegistrationRegisterReq) (res *system.UserRegistrationRegisterRes, err error) {
|
||
// 获取用户信息
|
||
userInfo := ct.New().GetLoginUser(ctx)
|
||
if userInfo == nil {
|
||
return nil, errors.New("用户未登录")
|
||
}
|
||
|
||
// 极光推送设备唯一标识
|
||
registrationID := req.RegistrationId
|
||
|
||
// sys_user 表中的用户 ID
|
||
userID := int(userInfo.Id)
|
||
openID := userInfo.OpenId
|
||
|
||
// 如果用户已经绑定过了则更新,否则添加
|
||
if service.UserRegistration().IsBind(ctx, userID) {
|
||
_, err = dao.UserRegistration.Ctx(ctx).Data(dao.UserRegistration.Columns().RegistrationId, registrationID).
|
||
Where(dao.UserRegistration.Columns().UserId, userID).Update()
|
||
} else {
|
||
err = service.UserRegistration().Add(ctx, &system.UserRegistrationAddReq{
|
||
UserId: userID,
|
||
OpenId: openID,
|
||
RegistrationId: registrationID,
|
||
})
|
||
}
|
||
|
||
return
|
||
}
|