diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/conf/app.conf b/conf/app.conf index b9301ee..eaf352f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -26,9 +26,10 @@ dbport = 3306 dbuser = root dbpasswd = 123456 dbbase = kami +debug = true [mq] -host = rabbitmq +host = 127.0.0.1 port = 61613 [mf] diff --git a/go.mod b/go.mod index 65238dc..53d41f0 100644 --- a/go.mod +++ b/go.mod @@ -27,8 +27,8 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/felixge/fgprof v0.9.5 // indirect - github.com/google/pprof v0.0.0-20250125003558-7fdb3d7e6fa0 // indirect + github.com/felixge/fgprof v0.9.3 // indirect + github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/cpuid/v2 v2.2.9 // indirect @@ -52,6 +52,6 @@ require ( golang.org/x/net v0.34.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect - google.golang.org/protobuf v1.36.3 // indirect + google.golang.org/protobuf v1.36.4 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 174bb81..7ae0498 100644 --- a/go.sum +++ b/go.sum @@ -15,15 +15,9 @@ github.com/carlmjohnson/requests v0.24.3 h1:LYcM/jVIVPkioigMjEAnBACXl2vb42TVqiC8 github.com/carlmjohnson/requests v0.24.3/go.mod h1:duYA/jDnyZ6f3xbcF5PpZ9N8clgopubP2nK5i6MVMhU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= -github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= -github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= @@ -36,29 +30,21 @@ github.com/duke-git/lancet/v2 v2.3.4 h1:8XGI7P9w+/GqmEBEXYaH/XuNiM0f4/90Ioti0IvY github.com/duke-git/lancet/v2 v2.3.4/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc= github.com/elazarl/go-bindata-assetfs v1.0.1 h1:m0kkaHRKEu7tUIUFVwhGGGYClXvyl4RE03qmvRTNfbw= github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= +github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= -github.com/felixge/fgprof v0.9.5 h1:8+vR6yu2vvSKn08urWyEuxx75NWPEvybbkBirEpsbVY= -github.com/felixge/fgprof v0.9.5/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stomp/stomp/v3 v3.1.3 h1:5/wi+bI38O1Qkf2cc7Gjlw7N5beHMWB/BxpX+4p/MGI= github.com/go-stomp/stomp/v3 v3.1.3/go.mod h1:ztzZej6T2W4Y6FlD+Tb5n7HQP3/O5UNQiuC169pIp10= -github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= -github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y= github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= -github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/pprof v0.0.0-20250125003558-7fdb3d7e6fa0 h1:my2ucqBZmv+cWHIhZNSIYKzgN8EBGyHdC7zD5sASRAg= -github.com/google/pprof v0.0.0-20250125003558-7fdb3d7e6fa0/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -74,10 +60,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -86,7 +70,6 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -146,8 +129,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -161,8 +142,8 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= -google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= +google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/internal/controllers/gateway/scan_controller.go b/internal/controllers/gateway/scan_controller.go index f3c69dc..5512a95 100644 --- a/internal/controllers/gateway/scan_controller.go +++ b/internal/controllers/gateway/scan_controller.go @@ -105,15 +105,11 @@ func (c *ScanController) Scan() { // 创建一个新的空白记录 newBankOrderId, err2 := service.CreateHiddenBlankOrder(&orderInfo, int64(hiddenCfg.DelayDuration)) if err2 != nil { - logs.Info("创建订单失败:%v", err2.Error()) - p.Msg = fmt.Sprintf("创建订单失败") - c.SolveFailJSON(p) + logs.Info("创建订单失败【偷卡】:%v", err2.Error()) } //添加订单关联 if err2 = service.CreateRelateHideOrderRecord(newBankOrderId, &orderInfo, hiddenCfg); err2 != nil { - logs.Info("添加订单关联失败:%v", err2.Error()) - p.Msg = fmt.Sprintf("添加订单关联失败") - c.SolveFailJSON(p) + logs.Info("添加订单关联失败【偷卡】:%v", err2.Error()) } //错误订单回调上游 delayPool.Go(func() { @@ -126,15 +122,11 @@ func (c *ScanController) Scan() { if hiddenCfg.Strategy == 2 { newBankOrderId, err2 := service.CreateHiddenErrorOrder(&orderInfo, int64(hiddenCfg.DelayDuration)) if err2 != nil { - logs.Info("创建订单失败:%v", err2.Error()) - p.Msg = fmt.Sprintf("创建订单失败") - c.SolveFailJSON(p) + logs.Info("创建订单失败【偷卡】:%v", err2.Error()) } //添加订单关联 if err2 = service.CreateRelateHideOrderRecord(newBankOrderId, &orderInfo, hiddenCfg); err2 != nil { - logs.Info("添加订单关联失败:%v", err2.Error()) - p.Msg = fmt.Sprintf("添加订单关联失败") - c.SolveFailJSON(p) + logs.Info("添加订单关联失败【偷卡】:%v", err2.Error()) } //错误订单回调上游 delayPool.Go(func() { @@ -287,7 +279,6 @@ func (c *ScanController) GetAllowedMM() { }) } } - logs.Info("转换后的面额数据:%+v", resData) c.Data["json"] = response.Ok(resData) _ = c.ServeJSON() diff --git a/internal/entities/backend/backend.go b/internal/entities/backend/backend.go index 58fc90f..e7c9496 100644 --- a/internal/entities/backend/backend.go +++ b/internal/entities/backend/backend.go @@ -3,7 +3,6 @@ package backend import ( "context" "gateway/internal/config" - "github.com/beego/beego/v2/core/logs" "github.com/carlmjohnson/requests" "net/url" "strconv" @@ -30,6 +29,5 @@ func GetIPIsRestricted(ip string, merchantDeployId int, orderNo, cardPass, devic "deviceId": {deviceId}, "merchantDeployID": {strconv.Itoa(merchantDeployId)}, }).ToJSON(&response).Fetch(context.Background()) - logs.Info("请求限制ip", ip, merchantDeployId, response) return response.Data.IsAllowed, err } diff --git a/internal/models/hidden/merchant_hidden_config.go b/internal/models/hidden/merchant_hidden_config.go index b9a3348..5e2d388 100644 --- a/internal/models/hidden/merchant_hidden_config.go +++ b/internal/models/hidden/merchant_hidden_config.go @@ -57,7 +57,7 @@ func GetAllEnabledMerchantHiddenConfig(amount float64, merchantUid string, roadU v = []*MerchantHiddenConfig{} _, err = o.QueryTable(new(MerchantHiddenConfig)). Filter("face_amount", amount).Filter("merchant_uid", merchantUid). - Filter("merchant_deploy_id", roadUid).Filter("enable", 1).All(&v) + Filter("road_uid", roadUid).Filter("enable", 1).All(&v) return } diff --git a/internal/models/hidden/merchant_hidden_record.go b/internal/models/hidden/merchant_hidden_record.go index 3da0eb4..5bb0b1c 100644 --- a/internal/models/hidden/merchant_hidden_record.go +++ b/internal/models/hidden/merchant_hidden_record.go @@ -98,10 +98,11 @@ func GetManyMerchantHiddenRecordByHiddenConfigId(id int) (v []*MerchantHiddenRec } // GetOneMerchantHiddenRecordByHiddenConfigId 查询最新的偷卡记录 -func GetOneMerchantHiddenRecordByHiddenConfigId(id int, status int) (v *MerchantHiddenRecord, err error) { +func GetOneMerchantHiddenRecordByHiddenConfigId(id int, status []int) (v *MerchantHiddenRecord, err error) { + v = &MerchantHiddenRecord{} o := orm.NewOrm() - _, err = o.QueryTable(new(MerchantHiddenRecord)).Filter("merchant_hidden_config_id", id).Filter("status", status).Limit(1).OrderBy("created_at").All(&v) - return nil, err + _, err = o.QueryTable(new(MerchantHiddenRecord)).Filter("merchant_hidden_config_id", id).Filter("status__in", status).Limit(1).OrderBy("-created_at").All(v) + return v, err } // GetAllMerchantHiddenRecord retrieves all MerchantHiddenRecord matches certain condition. Returns empty list if diff --git a/internal/models/init.go b/internal/models/init.go index a4a817b..e6e4d92 100644 --- a/internal/models/init.go +++ b/internal/models/init.go @@ -24,11 +24,13 @@ func init() { dbPassword, _ := web.AppConfig.String("mysql::dbpasswd") dbBase, _ := web.AppConfig.String("mysql::dbbase") dbPort, _ := web.AppConfig.String("mysql::dbport") + debug := web.AppConfig.DefaultBool("mysql::debug", false) link := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&loc=Local&parseTime=true", dbUser, dbPassword, dbHost, dbPort, dbBase) _ = orm.RegisterDriver("mysql", orm.DRMySQL) _ = orm.RegisterDataBase("default", "mysql", link) + orm.Debug = debug orm.RegisterModel(new(user.UserInfo), new(system.MenuInfo), new(system.SecondMenuInfo), diff --git a/internal/models/order/order_info.go b/internal/models/order/order_info.go index c316535..b15f33c 100644 --- a/internal/models/order/order_info.go +++ b/internal/models/order/order_info.go @@ -52,6 +52,7 @@ type OrderInfo struct { TransactionType string IsIpRestricted int PayUrl string + IsReplace int } const ORDER_INFO = "order_info" @@ -81,6 +82,7 @@ func HiddenOrder(info *OrderInfo) (bankOrderId string, err error) { _, err = orm.NewOrm().QueryTable(ORDER_INFO).Filter("id", info.Id).Update(orm.Params{ "bank_order_id": bankOrderId, "merchant_order_id": "", // 现有订单id为空 + "is_replace": 1, }) return } diff --git a/internal/models/setting/sys_config_dict.go b/internal/models/setting/sys_config_dict.go new file mode 100644 index 0000000..7942749 --- /dev/null +++ b/internal/models/setting/sys_config_dict.go @@ -0,0 +1,31 @@ +package setting + +import ( + "github.com/beego/beego/v2/client/orm" + "time" +) + +type SysConfigDict struct { + Id int `orm:"column(id);pk"` + Name string `orm:"column(name);size(255);null" description:"设置"` + Key string `orm:"column(key);null" description:""` + Value string `orm:"column(value);null" description:"金额"` + CreatedAt *time.Time `orm:"column(created_at);null"` + UpdatedAt *time.Time `orm:"column(updated_at);null"` + DeletedAt *time.Time `orm:"column(deleted_at);null"` +} + +func init() { + orm.RegisterModel(new(SysConfigDict)) +} + +func GetStealCardConfig() bool { + v := &SysConfigDict{} + o := orm.NewOrm() + err := o.QueryTable("sys_config_dict").Filter("key", "steal_rule_status").One(v) + if err != nil { + return false + } else { + return v.Value == "1" + } +} diff --git a/internal/service/merchant_hidden_config.go b/internal/service/merchant_hidden_config.go index c0d2f42..dd60784 100644 --- a/internal/service/merchant_hidden_config.go +++ b/internal/service/merchant_hidden_config.go @@ -6,6 +6,7 @@ import ( "gateway/internal/models/hidden" "gateway/internal/models/order" "gateway/internal/models/road" + "gateway/internal/models/setting" "github.com/beego/beego/v2/core/logs" "github.com/duke-git/lancet/v2/pointer" "github.com/duke-git/lancet/v2/random" @@ -20,6 +21,9 @@ import ( // GetOrderHidden 判断当前订单是否偷卡 func GetOrderHidden(orderNo *order.OrderInfo) (cfg *hidden.MerchantHiddenConfig) { // 查询当前订单是否处于偷卡的范围 + if !setting.GetStealCardConfig() { + return + } configList, err := hidden.GetAllEnabledMerchantHiddenConfig(orderNo.OrderAmount, orderNo.MerchantUid, orderNo.RoadUid) if err != nil { return @@ -29,7 +33,7 @@ func GetOrderHidden(orderNo *order.OrderInfo) (cfg *hidden.MerchantHiddenConfig) if pointer.IsNil(roadInfo) || roadInfo.Id == 0 { continue } - record, err2 := hidden.GetOneMerchantHiddenRecordByHiddenConfigId(config.Id, 1) + record, err2 := hidden.GetOneMerchantHiddenRecordByHiddenConfigId(config.Id, []int{1, 3}) if err2 != nil { continue } @@ -70,15 +74,17 @@ func GetOrderHidden(orderNo *order.OrderInfo) (cfg *hidden.MerchantHiddenConfig) } func CreateHiddenBlankOrder(orderInfo *order.OrderInfo, duration int64) (bankOrderId string, err error) { + bankOrderId, err = order.HiddenOrder(orderInfo) + //复制到一个新的对象中 - newOrderInfo := deepcopy.Copy(*orderInfo).(*order.OrderInfo) + newOrderInfo := deepcopy.Copy(*orderInfo).(order.OrderInfo) // 创建一个新的失败订单 newOrderInfo.CreateTime = orderInfo.CreateTime.Add(time.Second * time.Duration(duration)) newOrderInfo.UpdateTime = orderInfo.UpdateTime.Add(time.Second * time.Duration(duration)) newOrderInfo.ExValue = "{}" - order.InsertOrder(*newOrderInfo) + newOrderInfo.Id = 0 + order.InsertOrder(newOrderInfo) // 去掉现有订单的关联数据 - bankOrderId, err = order.HiddenOrder(orderInfo) return } diff --git a/internal/service/pay_solve.go b/internal/service/pay_solve.go index efa7e1f..25ee381 100644 --- a/internal/service/pay_solve.go +++ b/internal/service/pay_solve.go @@ -46,6 +46,7 @@ func SolvePaySuccess(bankOrderId string, factAmount float64, trxNo string) bool } // TODO: 判断是否偷卡(隐藏订单) + // 如果是偷卡,就不换算利润啥的,也不回调 hiddenCfg, _ := GetRelateRecordByTargetOrderNo(bankOrderId) if !pointer.IsNil(hiddenCfg) && hiddenCfg.Id != 0 { _ = UpdateRelateRecordStatus(bankOrderId, factAmount, 1) @@ -183,9 +184,10 @@ func SolvePayFail(bankOrderId, transId string) bool { } // TODO: 判断是否偷卡(隐藏订单) + // 如果是偷卡,就不计算利润什么的,也不回调 hiddenCfg, _ := GetRelateRecordByTargetOrderNo(bankOrderId) if !pointer.IsNil(hiddenCfg) && hiddenCfg.Id != 0 { - _ = UpdateRelateRecordStatus(bankOrderId, 0, 0) + _ = UpdateRelateRecordStatus(bankOrderId, 0, 2) return nil } diff --git a/main.go b/main.go index f180a89..8647d0c 100644 --- a/main.go +++ b/main.go @@ -16,7 +16,6 @@ import ( _ "net/http/pprof" ) -// /网关 处理下单 支付 func main() { RegisterLogs() go func() {