Merge pull request 'test-pay' (#70) from test-pay into test

Reviewed-on: https://git.oa00.com/recook/backend_v2/pulls/70
master
杨赟 3 years ago
commit 98c9b6a6c2

@ -0,0 +1,32 @@
package thirdPartyApi
import (
"github.com/gin-gonic/gin"
"recook/internal/back"
"recook/internal/v2/logic/thirdPartyApi"
"strconv"
"time"
)
type TianXingApi struct {
}
type argsHolidays struct {
Year string `binding:"required"`
}
// GetHolidays 获取节假日并缓存
func (t *TianXingApi) GetHolidays(c *gin.Context) {
var args argsHolidays
if err := c.ShouldBindJSON(&args); err != nil {
back.Fail(c, err.Error())
return
}
var nowYear = strconv.Itoa(time.Now().Year())
holidays, err := thirdPartyApi.TianXingApiLogic.GetHolidays(nowYear)
if err != nil {
back.Fail(c, err.Error())
return
}
back.Suc(c, "操作成功", holidays.NewsList)
}

@ -91,3 +91,17 @@ func GetUserLoginCache(id uint, deviceType int) string {
}
return val
}
// @Style 获取app登录缓存
func GetxxxCache(id uint, deviceType int) string {
k := fmt.Sprintf("login:%d:user_%d", deviceType, id)
val, err := dbc.Rds.Get(k).Result()
if err != nil {
if err == redis.Nil {
return ""
} else {
panic(err)
}
}
return val
}

@ -0,0 +1,57 @@
package holidays
import (
"io/ioutil"
"net/http"
"net/url"
"strconv"
"strings"
)
const hostUrl = "http://api.tianapi.com/jiejiari/index?"
const key = "f2599751017c50b91d6f31261ce6dbc0"
const yearType = 1
const mouthTyoe = 2
var HolidaysApi = &holidaysApi{}
type holidaysApi struct {
}
func (h *holidaysApi) GetHolidays(year string) (string, error) {
request, err := h.request("get", hostUrl+url.Values{
"key": {key},
"type": {strconv.Itoa(yearType)},
"date": {year + "-01-01"},
}.Encode(), "")
if err != nil {
return "", err
}
return request, nil
}
// @Style 网络请求
func (h *holidaysApi) request(method string, host string, data string, headers ...*map[string]string) (string, error) {
client := &http.Client{}
method = strings.ToUpper(method)
req, err := http.NewRequest(method, host, strings.NewReader(data))
if err != nil {
return "", err
}
if len(headers) > 0 {
for key, value := range *headers[0] {
req.Header.Add(key, value)
}
}
resp, err := client.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(body), nil
}

@ -0,0 +1,66 @@
package thirdPartyApi
import (
"encoding/json"
"errors"
"fmt"
"github.com/go-redis/redis"
"recook/internal/dbc"
"recook/internal/v2/lib/holidays"
"time"
)
var TianXingApiLogic = &tianXingApi{}
type tianXingApi struct {
}
type Response struct {
Code int `json:"code"`
Msg string `json:"msg"`
NewsList []newslist `json:"newsList"`
}
type newslist struct {
Holiday string `json:"holiday"`
Name string `json:"name"`
Vacation string `json:"vacation"`
Remark string `json:"remark"`
Wage string `json:"wage"`
Start int `json:"start"`
Now int `json:"now"`
End int `json:"end"`
Tip string `json:"tip"`
Rest string `json:"rest"`
}
// GetHolidays 获取节假日并缓存
func (t *tianXingApi) GetHolidays(year string) (Response, error) {
k := fmt.Sprintf("thridParty:holidays:year_%s", year)
result, err := dbc.Rds.Get(k).Result()
if err != nil {
if err == redis.Nil {
var resp Response
result, err := holidays.HolidaysApi.GetHolidays(year)
if err != nil {
return Response{}, err
}
if err := json.Unmarshal([]byte(result), &resp); err != nil {
return Response{}, err
}
if resp.Code != 200 {
return Response{}, errors.New(resp.Msg)
}
dbc.Rds.Set(k, resp.NewsList, time.Hour*24)
return resp, nil
} else {
return Response{}, err
}
} else {
var resp Response
if err := json.Unmarshal([]byte(result), &resp); err != nil {
return Response{}, err
}
return resp, nil
}
}

@ -19,6 +19,7 @@ import (
"recook/internal/v2/controller/app/upgrade"
"recook/internal/v2/controller/app/user"
"recook/internal/v2/controller/app/vip"
"recook/internal/v2/controller/thirdPartyApi"
"recook/internal/v2/router/middleware"
"github.com/gin-gonic/gin"
@ -308,4 +309,11 @@ func routerApp(appRouter *gin.RouterGroup) {
}
}
thridApiController := appRouter.Group("thridapi")
{
proxy := thirdPartyApi.TianXingApi{}
{
thridApiController.POST("holidays", proxy.GetHolidays)
}
}
}

Loading…
Cancel
Save