浏览代码

一位app code兼容性处理

jys 2 年之前
父节点
当前提交
099bb52992
共有 2 个文件被更改,包括 11 次插入1 次删除
  1. 3 0
      v2alpha/public.go
  2. 8 1
      v2alpha/public_test.go

+ 3 - 0
v2alpha/public.go

@@ -123,6 +123,9 @@ func IsCode[T codeType](err error, code T) bool {
 // 那么最终业务错误码为302001
 func SetAppCode[T codeType](code T) {
 	strCode := strconv.Itoa(int(code))
+	if len(strCode) == 1 {
+		strCode = "0" + strCode
+	}
 	c, err := strconv.ParseInt(strCode+strings.Repeat("0", 6-len(strCode)),
 		10, 64)
 	if err != nil {

+ 8 - 1
v2alpha/public_test.go

@@ -129,9 +129,16 @@ func TestPublic(t *testing.T) {
 }
 
 func TestServiceCode(t *testing.T) {
+	SetAppCode(1)
+	NewInternalError(ErrBasic, "basic error")
+	code := ParseCode(WithCode(nil, ErrBasic))
+	assert.Equal(t, "basic error", code.Msg)
+	assert.Equal(t, 10101, code.BusinessCode)
+	assert.Equal(t, http.StatusInternalServerError, code.HttpCode)
+
 	SetAppCode(10)
 	NewBadRequest(ErrDb, "db error")
-	code := ParseCode(WithCode(nil, ErrDb))
+	code = ParseCode(WithCode(nil, ErrDb))
 	assert.Equal(t, "db error", code.Msg)
 	assert.Equal(t, 100102, code.BusinessCode)
 	assert.Equal(t, http.StatusBadRequest, code.HttpCode)