Commit cdc7b402 by wang

库存上传回调队列消费脚本

parent 6b1436d0
......@@ -33,6 +33,12 @@ func BuildDatabaseList() (DatabaseList map[string]BaseDatabase) {
MaxIdleCons: lib.Instance("db").GetInt("supplier.max_idle_conn"),
MaxOpenCons: lib.Instance("db").GetInt("supplier.max_open_conn"),
},
"spu": {
DataSourceName: lib.Instance("db").GetString("spu.data_source_name"),
Prefix: lib.Instance("db").GetString("spu.table_prefix"),
MaxIdleCons: lib.Instance("db").GetInt("spu.max_idle_conn"),
MaxOpenCons: lib.Instance("db").GetInt("spu.max_open_conn"),
},
}
}
......
......@@ -5,8 +5,8 @@ import (
"github.com/gin-gonic/gin"
"github.com/ichunt2019/cfg/lib"
xlog "github.com/ichunt2019/lxLog/log"
common "go_supplier_sever/app/common/function"
"go_supplier_sever/app/service"
common "go_upload_sync/app/common/function"
"go_upload_sync/app/service"
)
func Ping(ctx *gin.Context) {
......
......@@ -4,7 +4,7 @@ import (
"github.com/go-redis/redis/v7"
_ "github.com/go-sql-driver/mysql"
"github.com/ichunt2019/cfg/lib"
"go_supplier_sever/app/common/config"
"go_upload_sync/app/common/config"
"time"
"xorm.io/xorm"
......
package dao
import (
"fmt"
"github.com/go-redis/redis/v7"
"time"
)
/**
写的比较急,各个方法的参数有待优化
*/
func GetLogItem() (res []map[string]string) {
//_, err = Dao.GetDb("supplier").Table("lie_sku_upload_item_0").Get()
res,err:=Dao.GetDb("spu").QueryString("select * from lie_sku_upload_item_0 where log_id=?",17)
if(err!=nil){
fmt.Println(err.Error())
}
return res;
}
type UpdateItemStruct struct {
ErrorMsg string `json:"error_msg"`
SyncStatus int64 `json:"sync_status"`
SpuId int64 `json:"spu_id"`
SkuId int64 `json:"sku_id"`
SkuStatus int64 `json:"sku_status"`
SpuStatus int64 `json:"spu_status"`
UpdateTime int64 `json:"update_time" xorm:"updated"`
}
//修改item
func UpdateLogItem(upSn string,logId int64,updateItemStruct UpdateItemStruct) error{
tableName:=ResolveUpsn(upSn)
_,err:=Dao.GetDb("spu").Table(tableName).Where("id =?",logId).Update(&updateItemStruct)
if(err!=nil){
return err
}
return nil
}
//修改主表
type UpdatesUploadStruct struct {
UpSn string `json:"up_sn"`
SupplierCode string `json:"supplier_code"`
Status int64 `json:"status"`
UpdateTime int64 `json:"update_time" xorm:"updated"`
ActionTime int64 `json:"action_time" `
EndTime int64 `json:"end_time" `
}
//更新主日志单为完成
func UpdatesUploadLogSucess(upSn string,status int64) (error) {
updatesUploadStruct:=UpdatesUploadStruct{
Status: status,
EndTime:time.Now().Unix(),
}
_,err:=Dao.GetDb("spu").Table("lie_sku_upload_log").Where("up_sn =?",upSn).Update(&updatesUploadStruct)
if(err!=nil){
return err
}
return nil
}
func GetUploadLogInfo(upSn string) (*UpdatesUploadStruct,error) {
updatesUploadStruct:=&UpdatesUploadStruct{}
_,err:=Dao.GetDb("spu").Table("lie_sku_upload_log").Where("up_sn=?",upSn).Get(updatesUploadStruct)
if(err!=nil){
return updatesUploadStruct,err
}
return updatesUploadStruct ,nil
}
func ResolveUpsn(upSn string) (table string) {
var tableCode string; //表0-9
tableCode=upSn[len(upSn)-1:len(upSn)]
tableCode="lie_sku_upload_item_"+tableCode
return tableCode
}
//获取已经回调的队列数量 (sync_queue_upload)
func GetSyncQueueCount(upSn string) (int,error) {
value,err:=Dao.GetRedisDbGroup("api").HGet("sync_queue_upload",upSn).Int()
if(err!=nil &&err!=redis.Nil){
return value,err
}
return value,nil
}
//同步加1
func IncrSyncQueue(upSn string) (error){
count,err:=GetSyncQueueCount(upSn)
if(err!=nil){
return err
}
count=count+1
err=Dao.GetRedisDbGroup("api").HSet("sync_queue_upload",upSn,count).Err()
if(err!=nil){
return err
}
return nil
}
//获取应该发送的队列数量 (should_send_upload)
func GetShouldSendQueueCount(upSn string) (int,error) {
value,err:= Dao.GetRedisDbGroup("api").HGet("should_send_upload",upSn).Int()
if(err!=nil &&err!=redis.Nil){
return value,err
}
return value,nil
}
package dao
import (
"go_supplier_sever/app/model"
"go_upload_sync/app/model"
"time"
)
......
......@@ -18,4 +18,6 @@ func GetUser(){
fmt.Println(Dao.GetRedisDbGroup("api").Get("abcdef").String())
}
......@@ -4,8 +4,8 @@ import (
"fmt"
"github.com/ichunt2019/cfg/lib"
"github.com/ichunt2019/go-rabbitmq/utils/rabbitmq"
"github.com/tidwall/gjson"
"go_supplier_sever/app/service"
"go_upload_sync/app/service"
"log"
)
type RecvPro struct {
......@@ -26,15 +26,9 @@ func init() {
}
func (t *RecvPro) Consumer(dataByte []byte) (err error) {
message := string(dataByte)
fmt.Println(message)
supplierCode := gjson.Get(message, "PTID").String()
erpSupplierCode := gjson.Get(message, "supplierNumber").String()
erpSupplierName := gjson.Get(message, "supplierName").String()
err = service.AddSupplierSync(supplierCode, erpSupplierCode, erpSupplierName)
if err != nil {
fmt.Println(err)
}
fmt.Println("来了123")
log.Println(string(dataByte))
service.NewUploadObj(string(dataByte)).Sync()
return nil
}
......@@ -43,10 +37,12 @@ func (t *RecvPro) FailAction(dataByte []byte) error {
return nil
}
//data_manage
//sku_upload_sync
func Run() {
t := &RecvPro{}
rabbitmq.Recv(rabbitmq.QueueExchange{
"supplier_erp",
"data_manager_data_callback",
"",
"",
"",
......
package service
import "go_supplier_sever/app/dao"
import "go_upload_sync/app/dao"
func GetData(){
dao.GetUser()
......
package service
import "go_supplier_sever/app/dao"
import "go_upload_sync/app/dao"
func AddSupplierSync(supplierCode, erpSupplierCode, erpSupplierName string) (err error) {
return dao.AddSupplierSync(supplierCode, erpSupplierCode, erpSupplierName)
......
package service
import (
"encoding/json"
"fmt"
"github.com/ichunt2019/cfg/lib"
"github.com/ichunt2019/go-rabbitmq/utils/rabbitmq"
"github.com/tidwall/gjson"
"go_upload_sync/app/dao"
ls "go_upload_sync/util/lib"
)
/**
写的比较急,很多没封装
*/
type UploadSkuSync struct {
SkuReStr string
SkuRes *savaSkuRes
}
type savaSkuRes struct {
Errcode int64 `json:"errcode"`
GoodsId int64 `json:"goods_id"`
AddSku int64 `json:"add_sku"`
AddSpu int64 `json:"add_spu"`
SpuId int64 `json:"spu_id"`
SkuId int64 `json:"sku_id"`
ErrMsg string `json:"errmsg"`
UploadLogId int64 `json:"upload_log_id"`
UpSn string `json:"up_sn"`
}
func parseRes(r gjson.Result) (resObJ *savaSkuRes){
resObj:=&savaSkuRes{}
resObj.Errcode=r.Get("errcode").Int()
resObj.GoodsId=r.Get("goods_id").Int()
resObj.AddSku=r.Get("add_sku").Int()
resObj.AddSpu=r.Get("add_spu").Int()
resObj.SpuId=r.Get("spu_id").Int()
resObj.UploadLogId=r.Get("upload_log_id").Int()
resObj.ErrMsg=r.Get("errmsg").String()
resObj.UpSn=r.Get("up_sn").String()
return resObj
}
func NewUploadObj(SkuReStr string) *UploadSkuSync {
return &UploadSkuSync{SkuReStr:SkuReStr}
}
/**
@res string 接收 poolsku返回的结果
@res 格式如下
{
"errcode": 0,
"errmsg": "ok",
"goods_id": 1161889823935244337,
"add_sku": 0,
"add_spu": 0,
"spu_id": 2161889823940624400,
"upload_log_id": 123
}
@return error
*/
func (this *UploadSkuSync)Sync() error{
/*Str:=`
{
"errcode": 10086,
"errmsg": "这是错误信息",
"goods_id": 1161916576790978473,
"add_sku": 0,
"add_spu": 0,
"spu_id": 2161916576646508808,
"upload_log_id": 235,
"up_sn": "u161916721743338200"
}
`
this.SkuReStr=Str*/
r:=gjson.Parse(this.SkuReStr)
if(r.Exists() && r.IsObject()){
this.SkuRes=parseRes(r)
this.handle()
}else{
this.dingdingSucessPush("格式出错");
return nil
}
return nil
}
//开始处理
func (this *UploadSkuSync) handle() {
dao.IncrSyncQueue(this.SkuRes.UpSn)//redis 完成同步+1
if(this.SkuRes.UpSn=="" || this.SkuRes.UploadLogId==0){
msg:=fmt.Sprintf("回调的消息UploadLogId 和 UpSn 为空或者为0%s",this.SkuReStr)
this.dingdingSucessPush(msg);
return
}
error_msg:=""
sync_status:=int64(2)
if(this.SkuRes.Errcode!=0){
error_msg=this.SkuRes.ErrMsg
this.dingdingSucessPush(error_msg);
}
updateItemStruct:=dao.UpdateItemStruct{}
updateItemStruct.SkuId=this.SkuRes.GoodsId
updateItemStruct.SpuId=this.SkuRes.SpuId
updateItemStruct.SpuStatus=this.SkuRes.AddSpu
updateItemStruct.SkuStatus=this.SkuRes.AddSku
updateItemStruct.ErrorMsg=error_msg
updateItemStruct.SyncStatus=sync_status
//修改UpdateLogItem 表
err:=dao.UpdateLogItem(this.SkuRes.UpSn,this.SkuRes.UploadLogId,updateItemStruct)
if(err!=nil){
msg:=fmt.Sprintf("修改详情表出错:"+err.Error())
fmt.Println(msg)
this.dingdingSucessPush(msg);
}
//是否已经处理完成判断
isSucess,err:=this.IshandleSucess()
if(err!=nil){
msg:=fmt.Sprintf("判断是否处理完成时报错,err:%s",err.Error())
fmt.Println(msg)
this.dingdingSucessPush(msg);
}
if(isSucess){//如果已经处理完了 1.将主表的状态设置成已完成 2.发送到发送到下架处理脚本队列(开始时间和结束时间之外的sku下架)
err:=dao.UpdatesUploadLogSucess(this.SkuRes.UpSn,3)
if(err!=nil){
msg:=fmt.Sprintf("修改主表日志log错误")
fmt.Println(msg)
this.dingdingSucessPush(msg);
}
//发送队列到 supplier_sku_callback (处理脚本队列)
uploadInfo,err:=dao.GetUploadLogInfo(this.SkuRes.UpSn)
if(err!=nil){
msg:=fmt.Sprintf("查询主日志表错误:err:%s,up_sn:%s",err.Error(),this.SkuRes.UpSn)
fmt.Println(msg)
this.dingdingSucessPush(msg);
return
}
this.PushStatus3HandleList(uploadInfo)
//uploadInfo.ActionTime
}
}
//push到下架商品的队列
func (this *UploadSkuSync) PushStatus3HandleList(uploadInfo *dao.UpdatesUploadStruct) {
data:=make(map[string]interface{})
data["supplier_code"]=uploadInfo.SupplierCode
data["action_time"]=uploadInfo.ActionTime
data["end_time"]=uploadInfo.EndTime
bytes,err:=json.Marshal(data)
if(err!=nil){
msg:=fmt.Sprintf("推送下架队列,解析主日志为json报错")
fmt.Println(msg)
this.dingdingSucessPush(msg);
return
}
listMsg:=string(bytes)
fmt.Printf("单号:%s, 已完成;发送 supplier_sku_callback 队列\n,data:%s",uploadInfo.UpSn,listMsg)
listName:="supplier_sku_callback"
queueExchange := rabbitmq.QueueExchange{
listName,
listName,
"",
"direct",
lib.Instance("config").GetString("rabbit_mq_default.url"),
}
rabbitmq.Send(queueExchange, listMsg)
}
/**
应该发送队列 与 已完成队列对比
*/
func (this *UploadSkuSync) IshandleSucess() (bool,error) {
/**
sync_status=2(同步成功)
如果是错误 error_msg 填上
处理完成判断
已回来队列数 跟应该发送队列数是否相等(应该发送队列数是 状态为已审核+待审核)
*/
countSync,err:=dao.GetSyncQueueCount(this.SkuRes.UpSn)
fmt.Printf("up_sn:%s:的已接收数量为:%d\n",this.SkuRes.UpSn,countSync)
if(err!=nil){
return false,err
}
countSend,err:=dao.GetShouldSendQueueCount(this.SkuRes.UpSn)
fmt.Printf("up_sn:%s:应该发送的数量为:%d\n",this.SkuRes.UpSn,countSend)
if(countSync==countSend){
return true,nil
}
return false,nil
}
//钉钉发送成功
func (this *UploadSkuSync) dingdingSucessPush(msg string) {
msgTtile:="[同步回调队列][错误]\n"
msgS:=fmt.Sprintf("错误信息:%s",msg)
msgT:=fmt.Sprintf("返回数据:%s",this.SkuReStr)
zmsg:=msgTtile+msgS+msgT
res,err:=ls.DingDingPush(zmsg)
if(err!=nil){
fmt.Printf("发送钉钉错误:"+string(res.Errcode)+"msg:"+res.Errmsg+"\n")
}
}
......@@ -3,7 +3,7 @@ package boot
import (
"github.com/ichunt2019/cfg/lib"
xlog "github.com/ichunt2019/lxLog/log"
"go_supplier_sever/app/dao"
"go_upload_sync/app/dao"
)
func Init(configPath string, logPath string) (err error) {
......
......@@ -2,8 +2,8 @@ package main
import (
"flag"
"go_supplier_sever/app/queue"
"go_supplier_sever/boot"
"go_upload_sync/app/queue"
"go_upload_sync/boot"
)
var (
......@@ -12,11 +12,14 @@ var (
)
func main() {
//监听 sku_upload_sync
flag.StringVar(&configPath, "config", "./config/dev/", "配置文件")
flag.StringVar(&logPath, "logdir", "./logs/", "日志文件存储目录")
flag.Parse()
boot.Init(configPath, logPath)
//service.NewUploadObj("123").Sync()
queue.Run()
}
......@@ -36,4 +36,7 @@ data = [["gamma", "delta"],[1, 2]]
9 = [47778,4589,12369]
[rabbit_mq_default]
url = "amqp://guest:guest@192.168.2.232:5672/"
\ No newline at end of file
url = "amqp://huntadmin:jy2y2900@192.168.1.237:5672/"
[DINGDING]
SEARCH_API_MONITOR = "92917a6e090a8a39832c4843a579d6c6f9dfecc46fa275f8753ddee2b4399045"
\ No newline at end of file
......@@ -29,3 +29,9 @@ ShowSQL = false
max_idle_conn = 10
table_prefix = ""
max_conn_life_time = 100
[spu]
data_source_name = "spu:spu@tcp(192.168.1.235:3306)/liexin_spu?charset=utf8&parseTime=true&loc=Asia%2FChongqing"
max_open_conn = 20
max_idle_conn = 10
table_prefix = ""
max_conn_life_time = 100
\ No newline at end of file
#服务注册名称
micro_service_name = "go_supplier_sever"
micro_service_name = "go_upload_sync"
#etcd配置信息 etcd服务的ip端口用户密码
[etcd_config]
......
module go_supplier_sever
module go_upload_sync
go 1.14
......@@ -7,11 +7,13 @@ require (
github.com/gin-gonic/gin v1.6.3
github.com/go-redis/redis/v7 v7.4.0
github.com/go-sql-driver/mysql v1.5.0
github.com/gogf/gf v1.15.6
github.com/ichunt2019/cfg v0.0.0-20210310074903-4b1bcab17717
github.com/ichunt2019/go-rabbitmq v1.0.1
github.com/ichunt2019/go-redis-pool v0.0.0-20210305064829-86b9011c57f5
github.com/ichunt2019/ichunt-micro-registry v1.0.1
github.com/ichunt2019/lxLog v0.0.0-20210226024426-781becb3c042
github.com/imroc/req v0.3.0
github.com/mattn/go-sqlite3 v1.14.6 // indirect
github.com/spf13/viper v1.7.1
github.com/tidwall/gjson v1.6.8
......
......@@ -33,6 +33,8 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 h1:LdXxtjzvZYhhUaonAaAKArG3pyC67kGL3YY+6hGG8G4=
github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
......@@ -58,6 +60,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
......@@ -80,6 +84,8 @@ github.com/go-redis/redis/v7 v7.4.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRf
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gogf/gf v1.15.6 h1:Ap5LiPvvdcMjsRqycS7Gz5eg7znVVcfqBrInSfDRpTI=
github.com/gogf/gf v1.15.6/go.mod h1:5eEgE9fWeRQW8dJE3GLpCy0KkNitXh6POesdJiBE/lw=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
......@@ -107,6 +113,8 @@ github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
......@@ -116,6 +124,8 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
......@@ -127,8 +137,11 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grokify/html-strip-tags-go v0.0.0-20190921062105-daaa06bf1aaf h1:wIOAyJMMen0ELGiFzlmqxdcV1yGbkyHBAB6PolcNbLA=
github.com/grokify/html-strip-tags-go v0.0.0-20190921062105-daaa06bf1aaf/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
......@@ -168,6 +181,7 @@ github.com/ichunt2019/ichunt-micro-registry v1.0.1 h1:IrNy60FRIPzqf+Fk/hH5BbEwQg
github.com/ichunt2019/ichunt-micro-registry v1.0.1/go.mod h1:OPGbBtYiHTjmxOZ43l32PLsiw+89CEDANx/Cs5Y9zkQ=
github.com/ichunt2019/lxLog v0.0.0-20210226024426-781becb3c042 h1:SIV0HiSBdAxCXD6tvPXo3HUkzdlcDUh2/4MITVWWf1c=
github.com/ichunt2019/lxLog v0.0.0-20210226024426-781becb3c042/go.mod h1:6TmzpwF0PZdjqPWxrm8Slw5ESkDEIik5w8f/uc3m+WI=
github.com/imroc/req v0.3.0 h1:3EioagmlSG+z+KySToa+Ylo3pTFZs+jh3Brl7ngU12U=
github.com/imroc/req v0.3.0/go.mod h1:F+NZ+2EFSo6EFXdeIbpfE9hcC233id70kf0byW97Caw=
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
......@@ -198,6 +212,9 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.10 h1:CoZ3S2P7pvtP45xOtBw+/mDL2z0RKI576gSkzRRpdGg=
github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus=
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
......@@ -220,6 +237,8 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
......@@ -255,6 +274,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
......@@ -288,6 +309,8 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
......@@ -313,6 +336,14 @@ go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opentelemetry.io/otel v0.19.0 h1:Lenfy7QHRXPZVsw/12CWpxX6d/JkrX8wrx2vO8G80Ng=
go.opentelemetry.io/otel v0.19.0/go.mod h1:j9bF567N9EfomkSidSfmMwIwIBuP37AMAIzVW85OxSg=
go.opentelemetry.io/otel/metric v0.19.0 h1:dtZ1Ju44gkJkYvo+3qGqVXmf88tc+a42edOywypengg=
go.opentelemetry.io/otel/metric v0.19.0/go.mod h1:8f9fglJPRnXuskQmKpnad31lcLJ2VmNNqIsx/uIwBSc=
go.opentelemetry.io/otel/oteltest v0.19.0 h1:YVfA0ByROYqTwOxqHVZYZExzEpfZor+MU1rU+ip2v9Q=
go.opentelemetry.io/otel/oteltest v0.19.0/go.mod h1:tI4yxwh8U21v7JD6R3BcA/2+RBoTKFexE/PJ/nSO7IA=
go.opentelemetry.io/otel/trace v0.19.0 h1:1ucYlenXIDA1OlHVLDZKX0ObXV5RLaq06DtUKz5e5zc=
go.opentelemetry.io/otel/trace v0.19.0/go.mod h1:4IXiNextNOpPnRlI4ryK69mn5iC84bjBWZQA5DXz/qg=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
......@@ -331,6 +362,8 @@ golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
......@@ -370,6 +403,8 @@ golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102 h1:42cLlJJdEh+ySyeUUbEQ5bsTiq8voBeTuweGVkY6Puw=
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
......@@ -392,16 +427,22 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0 h1:HyfiK1WMnHj5FXFXatD+Qs1A/xC2Run6RzeW1SyHxpc=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
......@@ -484,6 +525,8 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
......
......@@ -4,8 +4,8 @@ import (
"errors"
"fmt"
"github.com/gin-gonic/gin"
common "go_supplier_sever/app/common/function"
"go_supplier_sever/util"
common "go_upload_sync/app/common/function"
"go_upload_sync/util"
"github.com/ichunt2019/cfg/lib"
"runtime/debug"
)
......
......@@ -3,8 +3,8 @@ package middleware
import (
"bytes"
"github.com/gin-gonic/gin"
"go_supplier_sever/util"
"go_supplier_sever/util/lib"
"go_upload_sync/util"
"go_upload_sync/util/lib"
"io/ioutil"
"time"
)
......
......@@ -3,7 +3,7 @@ package middleware
import (
"encoding/json"
"fmt"
"go_supplier_sever/util/lib"
"go_upload_sync/util/lib"
"github.com/gin-gonic/gin"
"strings"
)
......
......@@ -4,7 +4,7 @@ import (
"context"
"github.com/gin-gonic/gin"
cfg "github.com/ichunt2019/cfg/lib"
"go_supplier_sever/middleware"
"go_upload_sync/middleware"
"log"
"net/http"
"time"
......
......@@ -2,7 +2,7 @@ package router
import (
"github.com/gin-gonic/gin"
"go_supplier_sever/app/controller"
"go_upload_sync/app/controller"
)
func InitRouter(middlewares ...gin.HandlerFunc) *gin.Engine {
......
package lib
import (
"encoding/json"
"github.com/ichunt2019/cfg/lib"
"github.com/imroc/req"
"github.com/tidwall/gjson"
)
//发送钉钉消息的包
type DingDingRequest struct {
MsgType string `json:"msgtype"`
Text map[string]string `json:"text"`
IsAtAll bool `json:"isAtAll"`
}
type DingDingResponse struct {
Errcode int `json:"errcode"`
Errmsg string `json:"errmsg"`
}
func DingDingPush(content string) (result DingDingResponse, err error) {
accessToken:=lib.Instance("config").GetString("DINGDING.SEARCH_API_MONITOR")
webhook := "https://oapi.dingtalk.com/robot/send?access_token=" + accessToken
data := make(map[string]interface{})
data["msgtype"] = "text"
data["text"] = map[string]string{
"content": content,
}
req.Debug = false
dataStrByte, _ := json.Marshal(data)
dataStr := string(dataStrByte)
//dataStr = strings.Replace(dataStr, "\\", "\\\\", -1)
params := req.BodyJSON(dataStr)
resp, err := req.Post(webhook, params, req.Header{
"Content-Type": "application/json",
"charset": "UTF-8",
})
if resp == nil {
return
}
result.Errcode = int(gjson.Get(resp.String(), "errcode").Int())
result.Errmsg = gjson.Get(resp.String(), "errmsg").String()
return
}
......@@ -3,7 +3,7 @@ package lib
import (
_ "github.com/go-sql-driver/mysql"
"github.com/ichunt2019/cfg/lib"
"go_supplier_sever/app/common/config"
"go_upload_sync/app/common/config"
"xorm.io/xorm"
)
......
......@@ -3,7 +3,7 @@ package util
import (
"context"
"go_supplier_sever/util/lib"
"go_upload_sync/util/lib"
"github.com/gin-gonic/gin"
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment