123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package service
- import (
- "ElectronicInvoice/internal/consts"
- "ElectronicInvoice/util"
- "context"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "time"
- )
- // Login 登录系统
- func (t *TripartiteAuth) Login() error {
- type (
- loginFirstRes struct {
- Ewm string `json:"ewm"` //扫码二维码
- IsVerificationCode int `json:"isVerificationCode"` //是否需要输入验证码 1需要 2不需要
- }
- )
- var (
- ctx = context.Background()
- d loginFirstRes
- loginType = g.Cfg().MustGet(ctx, "loginType", 0).Int() //0 短信登录 1 扫码登录
- )
- //授权登录
- err := CommonDoPost("/index_index/startPort",
- t.GetFormHeaderWithToken(),
- g.MapStrAny{
- "taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
- "tel": g.Cfg().MustGet(ctx, "company.account"),
- "password": g.Cfg().MustGet(ctx, "company.password"),
- "login_type": loginType,
- "parameter": "cccc",
- },
- func(i interface{}) error {
- if err := gconv.Struct(i, &d); err != nil {
- return err
- }
- return nil
- })
- if err != nil {
- return gerror.Wrap(err, "授权登录异常")
- }
- if loginType == 0 { //短信登录
- //TODO 发送消息 取填写验证码
- g.Log().Infof(ctx, "等待接收登录验证码")
- select {
- case <-time.After(time.Minute * 5):
- g.Log().Infof(ctx, "已接接收登录验证码接收超时")
- return consts.AuthTimeOut
- case yzm := <-JyInvoiceManager.phoneCode:
- if err := t.LoginAfterKeepOnline(yzm); err != nil {
- return gerror.Wrap(err, "短信验证失败")
- }
- }
- } else {
- //ToDo be developed
- // 等待扫完完成回调 默认扫码成功
- if err := util.SendQrImage2ChatBot(d.Ewm); err != nil {
- return gerror.Wrap(err, "发送企业微信登录消息异常")
- }
- select {
- case <-time.After(time.Minute * 5):
- g.Log().Infof(ctx, "已接接收登录验证码接收超时")
- return consts.AuthTimeOut
- case scanOk := <-JyInvoiceManager.ScanLogin:
- if !scanOk {
- return gerror.Wrap(err, "扫码登录验证失败")
- }
- }
- }
- JyInvoiceManager.Login = true
- return nil
- }
- // LoginAfterKeepOnline 长期登录授权接口
- func (t *TripartiteAuth) LoginAfterKeepOnline(yzm string) error {
- var (
- ctx = context.Background()
- )
- g.Log().Infof(ctx, "已接接收登录验证码 %s", yzm)
- err := CommonDoPost("/index_index/onLine",
- t.GetFormHeaderWithToken(),
- g.MapStrAny{
- "taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
- "tel": g.Cfg().MustGet(ctx, "company.account"),
- "yzm": yzm,
- },
- nil)
- if err != nil {
- return gerror.Wrap(err, "授权登录异常")
- }
- return nil
- }
- // VerifyLogin 验证登录
- func (t *TripartiteAuth) VerifyLogin() error {
- var (
- ctx = context.Background()
- )
- err := CommonDoPost("/index_index/verifyLogin",
- t.GetFormHeaderWithToken(),
- g.MapStrAny{
- "taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
- "tel": g.Cfg().MustGet(ctx, "company.account"),
- },
- nil)
- if err != nil {
- return gerror.Wrap(err, "授权登录异常")
- }
- return err
- }
- // SyncData 验证登录
- func (t *TripartiteAuth) SyncData() error {
- var (
- ctx = context.Background()
- )
- err := CommonDoPost("/index_index/syncData",
- t.GetFormHeaderWithToken(),
- g.MapStrAny{
- "taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
- "tel": g.Cfg().MustGet(ctx, "company.account"),
- "start_time": "2024-01-01",
- "end_time": "2024-05-01",
- "total": 10,
- },
- nil)
- if err != nil {
- return gerror.Wrap(err, "Demo")
- }
- return err
- }
|