From 88cc99e4732bc36186d5475d8e37aed5296c763d Mon Sep 17 00:00:00 2001 From: lijikun Date: Wed, 18 Dec 2024 21:09:23 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=8818=E6=97=A5=20=20=20=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90token,=E8=8E=B7=E5=8F=96jwcode=20=20=20=20=E5=AF=BC?= =?UTF-8?q?=E5=87=BAexcel=E5=B0=9D=E8=AF=95=20=20=20=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E7=99=BB=E5=85=A5=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- link_homework/go.sum | 1 + .../internal/controller/clientPage/clientPage.go | 22 +++++++++++++++++++--- link_homework/internal/logic/client/client.go | 4 ++-- link_homework/internal/service/client.go | 2 +- link_homework/utility/utility.go | 20 ++++++++++---------- 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/link_homework/go.sum b/link_homework/go.sum index 3dc7e59..c981eba 100644 --- a/link_homework/go.sum +++ b/link_homework/go.sum @@ -1,3 +1,4 @@ +github.com/360EntSecGroup-Skylar/excelize v1.4.1 h1:l55mJb6rkkaUzOpSsgEeKYtS6/0gHwBYyfo5Jcjv/Ks= github.com/360EntSecGroup-Skylar/excelize v1.4.1/go.mod h1:vnax29X2usfl7HHkBrX5EvSCJcmH3dT9luvxzu8iGAE= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= diff --git a/link_homework/internal/controller/clientPage/clientPage.go b/link_homework/internal/controller/clientPage/clientPage.go index 9329225..83f3a86 100644 --- a/link_homework/internal/controller/clientPage/clientPage.go +++ b/link_homework/internal/controller/clientPage/clientPage.go @@ -5,6 +5,7 @@ import ( CPage "link_homework/api/v1/ClientPage" "link_homework/internal/model/dto" "link_homework/internal/service" + "link_homework/utility" ) type ClientPage struct{} @@ -16,7 +17,15 @@ func NewClientPage() *ClientPage { // 查询作业列表 func (c *ClientPage) GetHomeworkList(r *ghttp.Request) { //请求中不需要携带任何参数 - result, err := service.Client().ClientGetHomeworkList(r.Context()) + token := r.Get("token").String() + jwcode, err := utility.GetJwcodeJSON(token) + if err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } + result, err := service.Client().ClientGetHomeworkList(r.Context(), jwcode) if err != nil { r.Response.WriteJsonExit(dto.Result{ Code: 400, @@ -54,7 +63,14 @@ func (c *ClientPage) GetHomeworkQuestion(r *ghttp.Request) { } func (c *ClientPage) CommitHomework(r *ghttp.Request) { - var jwcode int = 90038794 + token := r.Get("token").String() + jwcode, err := utility.GetJwcodeJSON(token) + if err != nil { + r.Response.WriteJsonExit(dto.Result{ + Code: 400, + Message: err.Error(), + }) + } var req CPage.CommitHomeworkReq if err := r.Parse(&req); err != nil { r.Response.WriteJsonExit(dto.Result{ @@ -63,7 +79,7 @@ func (c *ClientPage) CommitHomework(r *ghttp.Request) { }) } - err := service.Client().CommitHomework(r.Context(), req, jwcode) + err = service.Client().CommitHomework(r.Context(), req, jwcode) if err != nil { r.Response.WriteJsonExit(dto.Result{ Code: 400, diff --git a/link_homework/internal/logic/client/client.go b/link_homework/internal/logic/client/client.go index f8f31ad..4973767 100644 --- a/link_homework/internal/logic/client/client.go +++ b/link_homework/internal/logic/client/client.go @@ -16,8 +16,8 @@ func init() { service.RegisterClient(&sClient{}) } -func (s *sClient) ClientGetHomeworkList(ctx context.Context) (homeworkList []ClientPage.GetHomeworkListRse, err error) { - var jwcode = 90038794 //需要从token中获取当前的数据 +func (s *sClient) ClientGetHomeworkList(ctx context.Context, jwcode int) (homeworkList []ClientPage.GetHomeworkListRse, err error) { + //var jwcode = 90038794 //需要从token中获取当前的数据 err = dao.ActivityInteractiveGroup.Ctx(ctx).Fields("id", "name", "DATE_FORMAT(end_date, '%Y-%m-%d') as end_date"). Where("end_date>?", gtime.Now()).OrderDesc("end_date").Scan(&homeworkList) if err != nil { diff --git a/link_homework/internal/service/client.go b/link_homework/internal/service/client.go index 57314c2..ce027c0 100644 --- a/link_homework/internal/service/client.go +++ b/link_homework/internal/service/client.go @@ -12,7 +12,7 @@ import ( type ( IClient interface { - ClientGetHomeworkList(ctx context.Context) (homeworkList []ClientPage.GetHomeworkListRse, err error) + ClientGetHomeworkList(ctx context.Context, jwcode int) (homeworkList []ClientPage.GetHomeworkListRse, err error) GetHomeworkQuestion(ctx context.Context, groupId int) (questions []ClientPage.GetHomeworkQuestionRes, err error) CommitHomework(ctx context.Context, req ClientPage.CommitHomeworkReq, jwcode int) (err error) } diff --git a/link_homework/utility/utility.go b/link_homework/utility/utility.go index 513bfc1..17fba55 100644 --- a/link_homework/utility/utility.go +++ b/link_homework/utility/utility.go @@ -60,11 +60,11 @@ func selectBaseUrl(hashKey string) *dto.Result { } // 获取 jwcode -func GetJwcodeJSON(token string) (string, error) { +func GetJwcodeJSON(token string) (int, error) { // 返回类型改为 int // 1. 获取基础 URL urlResult := getUrl(consts.URL_KEY, consts.URL_HASH_KEY) if urlResult.Code != 200 { - return "", errors.New("获取基础 URL 失败: " + urlResult.Message) + return 0, errors.New("获取基础 URL 失败: " + urlResult.Message) } baseUrl := urlResult.Data.(string) @@ -75,7 +75,7 @@ func GetJwcodeJSON(token string) (string, error) { // 3. 创建 HTTP 请求 req, err := http.NewRequest("POST", url, requestBody) if err != nil { - return "", fmt.Errorf("HTTP 请求创建失败: %v", err) + return 0, fmt.Errorf("HTTP 请求创建失败: %v", err) } req.Header.Set("Content-Type", "application/json") @@ -83,33 +83,33 @@ func GetJwcodeJSON(token string) (string, error) { client := &http.Client{} resp, err := client.Do(req) if err != nil { - return "", fmt.Errorf("HTTP 请求失败: %v", err) + return 0, fmt.Errorf("HTTP 请求失败: %v", err) } defer resp.Body.Close() // 5. 检查 HTTP 状态码 if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("HTTP 状态码错误: %v", resp.Status) + return 0, fmt.Errorf("HTTP 状态码错误: %v", resp.Status) } // 6. 读取并解析响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { - return "", fmt.Errorf("读取响应失败: %v", err) + return 0, fmt.Errorf("读取响应失败: %v", err) } // 7. 解析 JSON 数据 var jsonResponse map[string]interface{} if err = json.Unmarshal(body, &jsonResponse); err != nil { - return "", fmt.Errorf("解析 JSON 失败: %v", err) + return 0, fmt.Errorf("解析 JSON 失败: %v", err) } // 8. 提取并直接返回 jwcode if data, ok := jsonResponse["data"].(map[string]interface{}); ok { - if jwcode, exists := data["jwcode"].(string); exists { - return jwcode, nil // 直接返回 jwcode + if jwcode, exists := data["jwcode"].(float64); exists { // 确保将 jwcode 作为数字解析 + return int(jwcode), nil // 转换为整数并返回 } } - return "", errors.New("响应体中没有 jwcode") + return 0, errors.New("响应体中没有 jwcode") }