Files
kami_backend/utility/integration/camel_oil_api/api_test.go
danial 85b552eec3 feat(camel_oil): add order export to Excel functionality
- Add ExportOrder RPC method to camel_oil API and service interfaces
- Implement service logic to query orders and generate Excel file with order data
- Include card number and password fields in order export
- Create HTTP handler to stream Excel file with proper headers for download
- Handle token status update on frequent error ban (oneDay case)
- Fix order processing query to filter by status and pay status correctly
- Add new error code for one-day ban in camel_oil_api and handle in client logic
- Update order model and response to include card number and password
- Remove redundant logging of SendCaptcha request data in camel_oil_api client
- Add access control checks on ExportOrder endpoint for authorized users only
2025-12-11 20:13:52 +08:00

62 lines
3.0 KiB
Go

package camel_oil_api
import (
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
"github.com/gogf/gf/v2/net/gclient"
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/os/glog"
"github.com/gogf/gf/v2/os/gtime"
"kami/internal/logic/proxy_pool"
"kami/internal/service"
"testing"
)
func TestClient_SendCaptcha(t *testing.T) {
client := NewClient(t.Context())
isOk, err := client.SendCaptcha(t.Context(), "17862666120")
glog.Info(t.Context(), isOk, err)
}
func TestClient_SendCard(t *testing.T) {
for i := 0; i < 10000; i++ {
client := gclient.New()
req := struct {
BodyStr string `json:"bodyStr"`
Channel string `json:"channel"`
Yanqian bool `json:"yanqian"`
}{
BodyStr: "RSCkYgmxmejXt3Tn7b4+E2qV7bkhYXRTWeYwH8uHeupFo6cdxxv8GeyKAX2K0xWzE5lhlVJY+wPHswlO5nly46yaFBRKQ1ATo+J9uMezP8bvw0Ue483T8yYJy/gdqGQtv3+nBRqCD4Zb9QG75VIgrZhcGGN3XLKd3qd+lvrAOnCA5yhyGi7NnCNGFG7amgpEJL8DhUiy3vum+oe+4m8D0Qp9SrMhluDql5GrO0Kb6U3X0+ecD1sfSPOIGPQ82vIZsHRTnmKJNb/OUtJR5uKNURsZyBNlNprScv7WDsFy8jiKMBGgD59okxWpanxX/c2T0ijEyfcz8kJb06MzWrPubBFA+Ut7XNebiTMhFszDy5Y4DUFepby6ta+F5AOf62Ashuvu6MMoFP2woryfaYrovDgEAtttmj9iXoZUJCPG7NY6XaXFkmIlRTY7WtFy807v/vo4rppTYw+a3yfcMPya8wP0lKSIn7x4ubUUdiF3Gi8ro8YMJmYoMyYgQ3g27ZJpK99KcwhwkwhoP0mS7tf25pd3IrScds2o2jtuSxHHDFkH1muRnsNG/qgdG3W7gUdyap53i92dqWPGZHdhRPTl23Xw9PwVPf1t1NJ3nYluBq+awye0ZUK1BjGebKEoBbVN7Mg6pkNN5OjwFDz6jCvdTNpIrKTcIt8+yAt6h0BST6Q=",
Channel: "app",
Yanqian: true,
}
client.SetHeader("authorization", "Bearer NOsm3aE1symoxiqciCUG6FkzpqT3ebhGbWlAxTZa+ipzSXBhToyHaVrtYlKEtIjHqKwael5dsdUQuNA0bvqe3lYwx8a2w4RoJS8AFT690Yzuef0ASNU0YGP5OujpPrAkyBxMwl7tvQntVd2nj2kLecF14pjNeE5YsjgZ5G6mEYg=")
result, err := client.ContentJson().Post(t.Context(), "https://recharge3.bac365.com/camel_wechat_mini_oil_server/eCardMall/wechatCardOrder", req)
glog.Info(t.Context(), result.ReadAllString(), err)
}
}
func TestClient_LoginWithCaptcha(t *testing.T) {
client := NewClient(t.Context())
isOk, err := client.LoginWithCaptcha(t.Context(), "19224625031", "063713")
glog.Info(t.Context(), isOk, err)
// 2025-11-27T17:14:24.131+08:00 [INFO]
}
func TestClient_CreateOrder(t *testing.T) {
service.RegisterProxyPool(proxy_pool.New())
_ = service.ProxyPool().InitStrategy(gctx.GetInitCtx(), "http://api.dmdaili.com/dmgetip.asp?apikey=42bab0ac&pwd=1b567c2f286a08e391b5805565fa0882&getnum=1&httptype=1&geshi=1&fenge=3&fengefu=&operate=all", gtime.M)
client := NewClient(t.Context())
resp, err := client.Client.Get(t.Context(), "https://www.baidu.com")
t.Log(resp.ReadAllString(), err, resp.StatusCode, resp.ReadAllString())
//ticker := time.NewTicker(time.Second * 1)
//for range ticker.C {
// orderId, payUrl, err := client.CreateCamelOilOrder(t.Context(), "19247252286", "D/k6sTlhbNrGk798lDhAP88qlJKYqMyiz9ESzmKW6uiuvj1ZWSPOlCgv3L0pEEr871Vuxr9tBAA4BiH2RTuSaYugq458wOjsJedfyGGHRyZZyMzZ/Tl6Km2vKT2Dph2/n9FaqNwErxNeq0+11x9q7VnBhhJTjxVIYN/fe3TB/m4=", 100)
// if err == nil {
// glog.Info(t.Context(), orderId, payUrl, err)
// return
// }
// glog.Info(t.Context(), orderId, payUrl, err)
//}
}