4 Commits

Author SHA1 Message Date
yuguojian
3676395e9f Merge remote-tracking branch 'origin/feature/对接新供应链-唯品尚' 2025-06-20 15:53:30 +08:00
zhongqiang
2fd998b52d 对接新供应链-唯品尚 2025-06-20 15:51:48 +08:00
lzh
2e8f0cb3f2 sms_tool 2025-06-20 14:49:45 +08:00
yuguojian
992f39109d 优化ip缓存 2025-06-18 18:06:45 +08:00
4 changed files with 32 additions and 17 deletions

View File

@@ -19,11 +19,10 @@ type HuaChenIpClient struct {
cache ICacheAdapter cache ICacheAdapter
} }
func NewHuaChenIpClient(appCode string, cache ICacheAdapter) *HuaChenIpClient { func NewHuaChenIpClient(appCode string) *HuaChenIpClient {
return &HuaChenIpClient{ return &HuaChenIpClient{
AppCode: appCode, AppCode: appCode,
Host: "https://c2ba.api.huachen.cn", Host: "https://c2ba.api.huachen.cn",
cache: cache,
} }
} }
@@ -90,13 +89,19 @@ func (h *HuaChenIpClient) GetIpInfo(ip string) (res *ApiResult, err error) {
return &apiResult, nil return &apiResult, nil
} }
func (h *HuaChenIpClient) GetIpInfoFormCache(ctx context.Context, ip string, ttl time.Duration) (res *ApiResult, err error) { func (h *HuaChenIpClient) Set(cache ICacheAdapter) {
getCache, err := h.cache.Get(ctx, h.ipKey(ip)) h.cache = cache
if err != nil { }
return nil, errors.Wrapf(err, "获取缓存失败ip:%s", ip)
} func (h *HuaChenIpClient) GetIpInfoFormCache(ctx context.Context, ip string, opt ...time.Duration) (res *ApiResult, err error) {
if getCache != nil { if h.cache != nil {
return getCache, nil res, err = h.cache.Get(ctx, h.ipKey(ip))
if err != nil {
return nil, errors.Wrapf(err, "获取缓存失败ip:%s", ip)
}
if res != nil {
return res, nil
}
} }
res, err = h.GetIpInfo(ip) res, err = h.GetIpInfo(ip)
if err != nil { if err != nil {
@@ -109,9 +114,11 @@ func (h *HuaChenIpClient) GetIpInfoFormCache(ctx context.Context, ip string, ttl
return nil, errors.Wrapf(err, "无法将IP信息转换为JSONip:%s", ip) return nil, errors.Wrapf(err, "无法将IP信息转换为JSONip:%s", ip)
} }
err = h.cache.Set(ctx, h.ipKey(ip), string(infoJson), ttl) if len(opt) == 0 {
if err != nil { err = h.cache.Set(ctx, h.ipKey(ip), string(infoJson), opt[0])
return nil, errors.Wrapf(err, "缓存ip:%s信息失败", ip) if err != nil {
return nil, errors.Wrapf(err, "缓存ip:%s信息失败", ip)
}
} }
return return
} }

View File

@@ -70,7 +70,15 @@ func (c *SmsClient) GetCode(ctx context.Context, key string) (code string, err e
if err != nil { if err != nil {
return "", err return "", err
} }
return value.(string), nil if value == nil {
return "", errors.New("验证码不存在,请重新发送")
}
switch value.(type) {
case string:
return value.(string), nil
default:
return "", errors.New("验证码类型错误,请联系管理员")
}
} }
// SaveCode 保存验证码 // SaveCode 保存验证码

View File

@@ -33,7 +33,7 @@ func (w *WeiPinShangClient) GetManyPostage(getManyPostageReq *GetManyPostageReq)
fmt.Println("getManyPostageReq", getManyPostageReq) fmt.Println("getManyPostageReq", getManyPostageReq)
paramMap := make(map[string]any) paramMap := make(map[string]any)
paramMap["goodInfo"] = getManyPostageReq.GoodsInfo paramMap["goodsInfo"] = getManyPostageReq.GoodsInfo
paramMap["address"] = getManyPostageReq.Address paramMap["address"] = getManyPostageReq.Address
paramMap["province"] = getManyPostageReq.Province paramMap["province"] = getManyPostageReq.Province
paramMap["county"] = getManyPostageReq.County paramMap["county"] = getManyPostageReq.County

View File

@@ -29,7 +29,7 @@ func TestWeiPinShangClient_GetManyPostage(t *testing.T) {
Key: "f654ea5bde7635c3f46191191e5c4c8e", Key: "f654ea5bde7635c3f46191191e5c4c8e",
}, },
args: GetManyPostageReq{ args: GetManyPostageReq{
GoodsInfo: "[{\"goodsId\":\"WPS592_00019\",\"goodSpecId\":\"WPS592_1105165115160944\",\"num\":1},{\"goodsId\":\"WPS505_00007\",\"goodSpecId\":\"WPS505_1007111249857536\",\"num\":1}]", GoodsInfo: "[{\"goodsId\":\"WPS427_adf0008\",\"goodSpecId\":\"WPS427_0715110641454716\",\"num\":1}]",
Province: "广东省", Province: "广东省",
Address: "奥园", Address: "奥园",
City: "广州市", City: "广州市",
@@ -80,14 +80,14 @@ func TestWeiPinShangClient_PreOrder(t *testing.T) {
Key: "f654ea5bde7635c3f46191191e5c4c8e", Key: "f654ea5bde7635c3f46191191e5c4c8e",
}, },
args: PreOrderReq{ args: PreOrderReq{
GoodsInfo: "[{\"goodsId\":\"WPS2_1231155626421463\",\"goodSpecId\":\"WPS2_12311556265677476\",\"num\":1}]", GoodsInfo: "[{\"goodsId\":\"WPS427_adf0008\",\"goodSpecId\":\"WPS427_0715110641454716\",\"num\":1}]",
Province: "广东省", Province: "广东省",
Address: "奥园", Address: "奥园",
City: "广州市", City: "广州市",
Area: "番禺区", Area: "番禺区",
ConsigneePhone: "15375390426", ConsigneePhone: "15375390426",
ConsigneeContacts: "张三", ConsigneeContacts: "张三",
LockCode: "L100000004", LockCode: "L100000005",
Source: "AILEHUI", Source: "AILEHUI",
}, },
}, },