wangkaiyue пре 1 година
родитељ
комит
638d7e3b13

+ 1 - 0
internal/service/invoiceManager.go

@@ -33,6 +33,7 @@ func init() {
 		panic(err)
 	}
 	job.Start()
+	JyInvoiceManager.Auth.CallBackInit()
 	//go JyInvoiceManager.RunOneJob(context.Background())//流程
 	//go JyInvoiceManager.Demo(context.Background()) //开票
 	//go JyInvoiceManager.RedDemo(context.Background())//红冲

+ 0 - 50
internal/service/tripartite/callback.go

@@ -1,50 +0,0 @@
-package tripartite
-
-import (
-	"context"
-	"github.com/gogf/gf/v2/errors/gerror"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/util/gconv"
-)
-
-func init() {
-	ctx := context.Background()
-	if g.Cfg().MustGet(ctx, "callBack.flush", false).Bool() {
-		configAction := g.Cfg().MustGet(ctx, "callBack.action").String()
-		url, err := QueryCallBack()
-		if err != nil || url != configAction {
-			if err := UpdateCallBack(configAction); err != nil {
-				g.Log().Errorf(ctx, "更新回调地址异常", err)
-			}
-		}
-	}
-}
-
-func UpdateCallBack(url string) (err error) {
-	err = CommonDoPost("/index_index/setCallBackUrl",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"url": url,
-		},
-		nil)
-	if err != nil {
-		err = gerror.Wrap(err, "更新回调接口异常")
-		return
-	}
-	return nil
-}
-
-func QueryCallBack() (callback string, err error) {
-	err = CommonDoPost("/index_index/getCallBackUrl",
-		getFormHeaderWithToken(),
-		g.MapStrAny{},
-		func(i interface{}) error {
-			callback = gconv.String(i)
-			return nil
-		})
-	if err != nil {
-		err = gerror.Wrap(err, "查询回调接口异常")
-		return
-	}
-	return
-}

+ 0 - 63
internal/service/tripartite/common.go

@@ -1,63 +0,0 @@
-package tripartite
-
-import (
-	"ElectronicInvoice/internal/consts"
-	"context"
-	"fmt"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/net/gclient"
-	"github.com/gogf/gf/v2/util/gconv"
-	"strings"
-)
-
-func getDefaultFormHeader() map[string]string {
-	return g.MapStrStr{"Content-Type": "application/x-www-form-urlencoded"}
-}
-func getFormHeaderWithToken() map[string]string {
-	return g.MapStrStr{
-		"Content-Type":  "application/x-www-form-urlencoded",
-		"API-AuthToken": JyElectronicTripartite.token,
-	}
-}
-func getJsonHeaderWithToken() map[string]string {
-	return g.MapStrStr{
-		"Content-Type":  "application/json",
-		"API-AuthToken": JyElectronicTripartite.token,
-	}
-}
-
-func CommonDoPost(url string, header map[string]string, param map[string]interface{}, success func(interface{}) error) (err error) {
-	var (
-		res *gclient.Response
-		ctx = context.Background()
-	)
-	type CommonRes struct {
-		Code int         `json:"code"`
-		Msg  string      `json:"msg"`
-		Data interface{} `json:"data"`
-	}
-	res, err = g.Client().Header(header).
-		Post(ctx, fmt.Sprintf("%s%s", consts.ServiceAddress, url), param)
-	if err != nil {
-		return
-	}
-	defer res.Close()
-
-	respByte := res.ReadAll()
-	//打印请求三方开票系统日志
-	if g.Cfg().MustGet(ctx, "reqDebug", false).Bool() {
-		g.Log().Infof(ctx, "%s\nrequest: %s\nheader: %+v\nparam: %+v\nresp: %s", strings.Repeat("=", 50), url, header, param, string(respByte))
-	}
-
-	var commonRes CommonRes
-	if err := gconv.Struct(respByte, &commonRes); err != nil {
-		return err
-	}
-	if commonRes.Code == 200 {
-		if success != nil {
-			return success(commonRes.Data)
-		}
-		return nil
-	}
-	return fmt.Errorf("CommonDoPost:%s \nErrorCode:%d Msg:%s", url, commonRes.Code, commonRes.Msg)
-}

+ 0 - 64
internal/service/tripartite/invoice.go

@@ -1,64 +0,0 @@
-package tripartite
-
-import (
-	"context"
-	"github.com/gogf/gf/v2/errors/gerror"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/util/gconv"
-)
-
-type (
-	makeInvoiceAllParam struct {
-		TaxNum string            `json:"taxNum"` //企业税号*
-		Tel    string            `json:"tel"`    //登录电子税局手机号或身份证号*
-		Data   []MakeInvoiceData `json:"data"`
-	}
-
-	MakeInvoiceData struct {
-		Type       string             `json:"type"`      //票类* 1 增值税专用发票;2 普通发票
-		Gmfmc      string             `json:"gmfmc"`     //购买方名称*
-		Gmfnsrsbh  string             `json:"gmfnsrsbh"` //购买方纳税人识别号*
-		Id         string             `json:"id"`        //发票流水号* 合作商开具的发票流水号,涉及到回调通知
-		Gmfdz      string             `json:"gmfdz"`     //购买方地址
-		Lxdh       string             `json:"lxdh"`      //购买方联系方式
-		Yhyywdmc   string             `json:"yhyywdmc"`  //购买方开户行
-		Yhzh       string             `json:"yhzh"`      //购买方银行账号
-		Notes      string             `json:"notes"`     //发票备注
-		InvoiceArr []MakeInvoiceItems `json:"invoiceArr"`
-	}
-	MakeInvoiceItems struct {
-		Xmmc     string `json:"xmmc"`      //项目名称*
-		Je       string `json:"je"`        //开票金额*
-		WhStatus int    `json:"wh_status"` //该开票项是否已调用接口进行维护: 1 已维护;0 未维护
-		Xhgg     string `json:"xhgg"`      //型号规格
-		Dw       string `json:"dw"`        //单位
-		Sl       string `json:"sl"`        //数量
-		Tsaxrate string `json:"taxrate"`   //税率
-	}
-)
-
-// MakeSingleInvoice 开单张发票
-func MakeSingleInvoice(param MakeInvoiceData) (err error) {
-	return MakeInvoices([]MakeInvoiceData{param})
-}
-
-// MakeInvoices 开多张发票
-func MakeInvoices(invoices []MakeInvoiceData) (err error) {
-	var (
-		ctx   = context.Background()
-		param = makeInvoiceAllParam{
-			TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:    g.Cfg().MustGet(ctx, "company.tel").String(),
-			Data:   invoices,
-		}
-	)
-	err = CommonDoPost("/index_index/makeInvoiceC",
-		getJsonHeaderWithToken(),
-		gconv.Map(gconv.String(param)),
-		nil)
-	if err != nil {
-		err = gerror.Wrap(err, "开票接口异常")
-		return
-	}
-	return nil
-}

+ 0 - 118
internal/service/tripartite/login.go

@@ -1,118 +0,0 @@
-package tripartite
-
-import (
-	"ElectronicInvoice/util"
-	"context"
-	"github.com/gogf/gf/v2/errors/gerror"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/util/gconv"
-)
-
-var (
-	loginStatue = true
-)
-
-// Login 登录系统
-func 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",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"taxNum":     g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":        g.Cfg().MustGet(ctx, "company.tel"),
-			"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 == 1 { //扫码登录
-		if err := util.SendQrImage2ChatBot(d.Ewm); err != nil {
-			return gerror.Wrap(err, "发送企业微信登录消息异常")
-		}
-	} else {
-		//长期授权登录
-		if err := LoginAfterKeepOnline(); err != nil {
-			return gerror.Wrap(err, "短信验证失败")
-		}
-	}
-	return nil
-}
-
-// LoginAfterKeepOnline 长期登录授权接口
-func LoginAfterKeepOnline() error {
-	var (
-		ctx = context.Background()
-	)
-	err := CommonDoPost("/index_index/onLine",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":    g.Cfg().MustGet(ctx, "company.tel"),
-			"yzm":    "211915", //手机短信验证码怎么获取??
-		},
-		nil)
-	if err != nil {
-		return gerror.Wrap(err, "授权登录异常")
-	}
-	return err
-}
-
-// VerifyLogin 验证登录
-func VerifyLogin() error {
-	var (
-		ctx = context.Background()
-	)
-	err := CommonDoPost("/index_index/verifyLogin",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":    g.Cfg().MustGet(ctx, "company.tel"),
-		},
-		nil)
-	if err != nil {
-		return gerror.Wrap(err, "授权登录异常")
-	}
-	return err
-}
-
-// SyncData 验证登录
-func SyncData() error {
-	var (
-		ctx = context.Background()
-	)
-	err := CommonDoPost("/index_index/syncData",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"taxNum":     g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":        g.Cfg().MustGet(ctx, "company.tel"),
-			"start_time": "2024-01-01",
-			"end_time":   "2024-05-01",
-			"total":      10,
-		},
-		nil)
-	if err != nil {
-		return gerror.Wrap(err, "Demo")
-	}
-	return err
-}

+ 0 - 119
internal/service/tripartite/taxCode.go

@@ -1,119 +0,0 @@
-package tripartite
-
-import (
-	"context"
-	"fmt"
-	"github.com/gogf/gf/v2/errors/gerror"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/util/gconv"
-)
-
-type Billitem struct {
-	Name    string `json:"name"`    //税收分类名称(接口中获取)
-	Ssflbm  string `json:"ssflbm"`  //税收分类编码(接口中获取)
-	Thirdid string `json:"thirdid"` //开票项id 自己定义的唯一id
-}
-
-// GetTaxList 返回内容 allTaxCode.json
-func GetTaxList() error {
-	err := CommonDoPost("/index_taxcode/getTaxCodeList",
-		getFormHeaderWithToken(),
-		nil,
-		func(i interface{}) error {
-			g.Dump(i)
-			return nil
-		})
-	if err != nil {
-		return gerror.Wrap(err, "Demo")
-	}
-	return nil
-}
-
-// AddTaxCode 开票项增加
-func AddTaxCode(items []Billitem) error {
-	type AddTaxCodeParam struct {
-		TaxNum    string     `json:"taxNum"`
-		Tel       string     `json:"tel"`
-		BillItems []Billitem `json:"billitems"`
-	}
-
-	var (
-		ctx   = context.Background()
-		param = AddTaxCodeParam{
-			TaxNum:    g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:       g.Cfg().MustGet(ctx, "company.tel").String(),
-			BillItems: items,
-		}
-	)
-	err := CommonDoPost("/index_taxcode/addTaxCode",
-		getJsonHeaderWithToken(),
-		gconv.Map(gconv.String(param)),
-		nil)
-	if err != nil {
-		return gerror.Wrap(err, "Demo")
-	}
-	return err
-}
-
-// GetSuccessTaxCodeList 查询已维护的开票项
-func GetSuccessTaxCodeList() ([]map[string]interface{}, error) {
-	type (
-		billItem struct {
-			Code string `json:"code"`
-			Name string `json:"name"`
-			Uuid string `json:"uuid"`
-		}
-	)
-	var (
-		ctx       = context.Background()
-		billItems []billItem
-	)
-	g.Dump(g.MapStrAny{
-		"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-	})
-	err := CommonDoPost("/index_taxcode/getCompanyTaxCodeList",
-		getFormHeaderWithToken(),
-		g.MapStrAny{
-			"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-		},
-		func(i interface{}) error {
-			return gconv.Struct(i, &billItems)
-		})
-	if err != nil {
-		return nil, gerror.Wrap(err, "查询已维护的开票项异常")
-	}
-	return gconv.Maps(billItems), nil
-}
-
-// DelTaxCode 删除开票项
-func DelTaxCode(uuid string) error {
-	type (
-		delItem struct {
-			UUid string `json:"uuid"`
-		}
-
-		AddTaxCodeParam struct {
-			TaxNum    string    `json:"taxNum"`
-			Tel       string    `json:"tel"`
-			BillItems []delItem `json:"billitems"`
-		}
-	)
-
-	var (
-		ctx   = context.Background()
-		param = AddTaxCodeParam{
-			TaxNum:    g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:       g.Cfg().MustGet(ctx, "company.tel").String(),
-			BillItems: []delItem{{UUid: uuid}},
-		}
-	)
-	fmt.Println(gconv.String(param))
-	err := CommonDoPost("/index_taxcode/delTaxCode",
-		getJsonHeaderWithToken(),
-		gconv.Map(gconv.String(param)),
-		nil)
-	if err != nil {
-		return gerror.Wrap(err, "删除开票项异常")
-	}
-	return err
-}

+ 0 - 61
internal/service/tripartite/token.go

@@ -1,61 +0,0 @@
-package tripartite
-
-import (
-	"context"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/util/gconv"
-	"time"
-)
-
-type (
-	tokenResData struct {
-		Token     string `json:"token"`
-		ExpiresIn int    `json:"expiresIn"` //一天有效期
-	}
-	tripartite struct {
-		token         string
-		effectiveTime time.Time
-	}
-)
-
-var (
-	JyElectronicTripartite = createTripartite()
-)
-
-func createTripartite() *tripartite {
-	t := &tripartite{}
-	_, err := t.GetToken(true)
-	if err != nil {
-		g.Log().Errorf(context.Background(), "刷新token异常%v", err)
-	}
-	return t
-}
-
-// GetToken 获取token
-func (t *tripartite) GetToken(reload ...bool) (string, error) {
-	var (
-		ctx = context.Background()
-	)
-	if time.Now().Before(t.effectiveTime) && t.token != "" && len(reload) == 0 {
-		return t.token, nil
-	}
-	err := CommonDoPost("/authority_token/getToken",
-		getDefaultFormHeader(),
-		g.MapStrAny{
-			"client_id":     g.Cfg().MustGet(ctx, "tripartite.clientId"),
-			"client_secret": g.Cfg().MustGet(ctx, "tripartite.clientSecret"),
-		},
-		func(i interface{}) error {
-			var d tokenResData
-			if err := gconv.Struct(i, &d); err != nil {
-				return err
-			}
-			t.token = d.Token
-			t.effectiveTime = time.Now().Add(time.Second * time.Duration(d.ExpiresIn))
-			return nil
-		})
-	if err != nil {
-		return "", err
-	}
-	return t.token, nil
-}

+ 0 - 88
run_test.go

@@ -1,88 +0,0 @@
-package main
-
-import (
-	"ElectronicInvoice/internal/service/tripartite"
-	"context"
-	"fmt"
-	"github.com/gogf/gf/v2/frame/g"
-	"github.com/gogf/gf/v2/test/gtest"
-	"github.com/gogf/gf/v2/text/gstr"
-	uuid "github.com/satori/go.uuid"
-	"testing"
-)
-
-func Test_Trim(t *testing.T) {
-	gtest.C(t, func(t *gtest.T) {
-		t.Assert(gstr.Trim(" 123456\n "), "123456")
-		t.Assert(gstr.Trim("#123456#;", "#;"), "123456")
-	})
-}
-
-func Test_Config(t *testing.T) {
-	ctx := context.Background()
-	g.Log().Info(ctx, g.Cfg().MustGet(ctx, "callBack.action"))
-}
-
-// Test_MakeInvoice 测试开发票
-func Test_MakeInvoice(t *testing.T) {
-	tripartite.MakeInvoices([]tripartite.MakeInvoiceData{{
-		Type:      "2",
-		Gmfmc:     "北京拓普丰联信息科技股份有限公司",
-		Gmfnsrsbh: "91110105756025873C",
-		Id:        "123321",
-		Gmfdz:     "北京市朝阳区安定路5号院13号楼B座12层1201室",
-		Lxdh:      "010-58772571",
-		Yhyywdmc:  "郑州交通银行总行",
-		Yhzh:      "6320123123000121",
-		InvoiceArr: []tripartite.MakeInvoiceItems{{
-			Xmmc:     "0fccdac71c36a8552ba662e7a2f42726",
-			WhStatus: 1,
-			Je:       "2",
-			Sl:       "1",
-		}},
-	}})
-}
-
-// Test_LoginDemo 登录
-func Test_LoginDemo(t *testing.T) {
-	//登录
-	err := tripartite.Login()
-	if err != nil {
-		panic(err)
-	}
-	return
-	//2.验证登录
-	tripartite.VerifyLogin()
-}
-
-// Test_TaxCode 开票项
-func Test_TaxCode(t *testing.T) {
-	fmt.Println("ccc", uuid.NewV4().String())
-	// 打印所有类别
-	//err := service.GetTaxList()
-	//if err != nil {
-	//	g.Dump(err)
-	//}
-
-	var err error
-	//删除开票项(异常)
-	//err = service.DelTaxCode("6f2e6a7a-18a7-4f21-b52e-a47437f817cc")
-	//if err != nil {
-	//	panic(err)
-	//}
-
-	list, err := tripartite.GetSuccessTaxCodeList()
-	if err != nil {
-		panic(err)
-	}
-	g.Dump(list)
-	return
-	err = tripartite.AddTaxCode([]tripartite.Billitem{{
-		Name:    "信息系统增值服务",
-		Ssflbm:  "3040205000000000000",
-		Thirdid: "6f2e6a7a-18a7-4f21-b52e-a47437f817cc",
-	}})
-	if err != nil {
-		panic(err)
-	}
-}