|
@@ -1,7 +1,14 @@
|
|
|
package jy
|
|
|
|
|
|
import (
|
|
|
+ "bytes"
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "io"
|
|
|
+ "io/ioutil"
|
|
|
+ "log"
|
|
|
"mongodb"
|
|
|
+ "net/http"
|
|
|
qu "qfw/util"
|
|
|
"qfw/util/mysql"
|
|
|
"strings"
|
|
@@ -94,3 +101,73 @@ func (vs *VipState) GetQueryItems(selectType string, limitOldTime int64) (items
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// HasBidFieldPower 获取用户是否有领域化数据权限
|
|
|
+func HasBidFieldPower(url string, userId string, functionCode string) bool {
|
|
|
+ // 是否开通过权益
|
|
|
+ header := map[string]string{
|
|
|
+ "newUserId": userId,
|
|
|
+ }
|
|
|
+ byJson, err := PostByJson(url, []byte(""), header)
|
|
|
+ if err != nil || byJson == nil {
|
|
|
+ log.Println("查询用户权益", url, userId, functionCode, err)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if byJson != nil {
|
|
|
+ powerList := byJson["data"].([]interface{})
|
|
|
+ for i := 0; i < len(powerList); i++ {
|
|
|
+ if powerList[i] == functionCode {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
+func PostByJson(reqUrl string, data []byte, header map[string]string) (rs map[string]interface{}, err error) {
|
|
|
+ reqData := bytes.NewBuffer(data)
|
|
|
+ log.Println("请求参数", reqData)
|
|
|
+ method := "POST"
|
|
|
+ client := &http.Client{}
|
|
|
+ req, err2 := http.NewRequest(method, reqUrl, reqData)
|
|
|
+ if err2 != nil {
|
|
|
+ log.Println(err2)
|
|
|
+ }
|
|
|
+ req.Header.Add("Content-Type", "application/json")
|
|
|
+ if header != nil && len(header) > 0 {
|
|
|
+ for k, v := range header {
|
|
|
+ req.Header.Add(k, v)
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.Printf("请求url:%v", reqUrl)
|
|
|
+ log.Printf("请求header:%v", header)
|
|
|
+ res, err3 := client.Do(req)
|
|
|
+ if err3 != nil {
|
|
|
+ log.Println(err3)
|
|
|
+ }
|
|
|
+ log.Printf("err:%v,结果:%v", err3, res)
|
|
|
+ defer func(Body io.ReadCloser) {
|
|
|
+ err6 := Body.Close()
|
|
|
+ if err6 != nil {
|
|
|
+ log.Println("ReadCloser Err", err6)
|
|
|
+ }
|
|
|
+ }(res.Body)
|
|
|
+
|
|
|
+ if err3 != nil {
|
|
|
+ log.Println("请求失败:", err3)
|
|
|
+ return map[string]interface{}{}, errors.New("请求失败")
|
|
|
+ }
|
|
|
+ body, err4 := ioutil.ReadAll(res.Body)
|
|
|
+ if err4 != nil {
|
|
|
+ log.Println("读取响应数据信息失败", err4)
|
|
|
+ return map[string]interface{}{}, errors.New("读取响应信息失败")
|
|
|
+ }
|
|
|
+ err5 := json.Unmarshal(body, &rs)
|
|
|
+ if err5 != nil {
|
|
|
+ log.Println("反序列化数据失败", err5)
|
|
|
+ return map[string]interface{}{}, errors.New("反序列化数据失败")
|
|
|
+ }
|
|
|
+ log.Println("结果:", rs)
|
|
|
+ return rs, nil
|
|
|
+}
|