12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package acquirer
- import (
- "context"
- "database/sql"
- "fmt"
- "time"
- "git.i2edu.net/i2/i2-bill-api/internal/svc"
- "git.i2edu.net/i2/i2-bill-api/internal/types"
- "git.i2edu.net/i2/i2-bill-api/model"
- "git.i2edu.net/i2/go-zero/core/logx"
- "git.i2edu.net/i2/go-zero/core/stores/sqlc"
- )
- type EnrollLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- UserId int64
- SessionKey string
- }
- func NewEnrollLogic(ctx context.Context, svcCtx *svc.ServiceContext) EnrollLogic {
- return EnrollLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- func (l *EnrollLogic) Enroll(req types.EnrollRequest) (*types.Response, error) {
- var stu model.I2billAcquirerStudent
- var qrScence struct {
- UserId int64 `json:"userId"`
- Timestamp time.Time `json:"timestamp"`
- Type string `json:"type"`
- }
- err := l.svcCtx.Wechat.GetQrParams(svc.QrcodeJzPrefix, req.Scene, &qrScence)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{Code: 500, Msg: err.Error(), Data: nil}, nil
- }
- err = l.svcCtx.SqlConn.QueryRowPartial(&stu, fmt.Sprintf("select %s from i2bill_acquirer_student where `user_id`=? and `stu_phone`=? limit 1", model.I2billAcquirerStudentRows), qrScence.UserId, req.ContactPhone)
- if err != sqlc.ErrNotFound && err != nil {
- logx.Error(err.Error())
- return &types.Response{Code: 500, Msg: err.Error(), Data: nil}, nil
- } else if stu.Id > 0 {
- return &types.Response{Code: 500, Msg: "已录入成功, 请勿重复操作", Data: nil}, nil
- } else {
- stu.UserId = sql.NullInt64{Int64: qrScence.UserId, Valid: true}
- stu.StuPhone = sql.NullString{String: req.ContactPhone, Valid: true}
- _, err := l.svcCtx.I2billAcquirerStudentModel.Insert(stu)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{Code: 500, Msg: err.Error(), Data: nil}, nil
- }
- }
- return &types.Response{}, nil
- }
|