Browse Source

历史排班

28169 1 year ago
parent
commit
52959d460d
4 changed files with 155 additions and 1 deletions
  1. 32 0
      controllers/sign_api_controller.go
  2. 2 0
      routers/router.go
  3. 1 1
      service/common_service.go
  4. 120 0
      service/sign_service.go

+ 32 - 0
controllers/sign_api_controller.go View File

@@ -0,0 +1,32 @@
1
+package controllers
2
+
3
+import (
4
+	"XT_New/service"
5
+	"fmt"
6
+	"github.com/astaxie/beego"
7
+)
8
+
9
+type SignApiController struct {
10
+	BaseAuthAPIController
11
+}
12
+
13
+func SignApiRegistRouters() {
14
+
15
+	//获取短信验证码
16
+	beego.Router("/api/sign/getsign", &SignApiController{}, "Get:GetSign")
17
+}
18
+
19
+// 短信服务接口
20
+func (this *SignApiController) GetSign() {
21
+
22
+	phone := this.GetString("phone")
23
+	fmt.Println("phone", phone)
24
+	var tempphone string
25
+	tempphone = "13318464642"
26
+	sign := service.GetSignNameByPhone(tempphone)
27
+	this.ServeSuccessJSON(map[string]interface{}{
28
+		"sign": sign,
29
+	})
30
+	return
31
+
32
+}

+ 2 - 0
routers/router.go View File

@@ -83,4 +83,6 @@ func init() {
83 83
 	controllers.HisSummaryApiRegistRouters()
84 84
 	controllers.PharmacyApiControllersRegisterRouters()
85 85
 	controllers.PharmacyApiRegistRouters()
86
+
87
+	controllers.SignApiRegistRouters()
86 88
 }

+ 1 - 1
service/common_service.go View File

@@ -481,7 +481,7 @@ func GetDialysisAgeData(orgID int64, lapsetotype int64, sourcetype int64) (count
481 481
 
482 482
 func GetCurentOrgPatients(orgid int64) (patients []*models.BloodXtPatients, err error) {
483 483
 
484
-	err = XTReadDB().Where("user_org_id = ? and status =1", orgid).Order("created_time desc").Find(&patients).Error
484
+	err = XTReadDB().Where("user_org_id = ? and status =1 and lapseto = 1", orgid).Order("created_time desc").Find(&patients).Error
485 485
 	return patients, err
486 486
 }
487 487
 

+ 120 - 0
service/sign_service.go View File

@@ -0,0 +1,120 @@
1
+package service
2
+
3
+import (
4
+	"bytes"
5
+	"crypto/hmac"
6
+	"crypto/sha1"
7
+	"crypto/sha256"
8
+	"encoding/base64"
9
+	"encoding/hex"
10
+	"encoding/json"
11
+	"fmt"
12
+	"github.com/astaxie/beego"
13
+	"io/ioutil"
14
+	"net/http"
15
+)
16
+
17
+func GetSignNameByPhone(phoneOne string) string {
18
+
19
+	var url string
20
+	url = "http://demo-open.itruscloud.com/apigate/smsService/sendingSms"
21
+	var phone string
22
+
23
+	phone = "13318464642"
24
+
25
+	var content string
26
+
27
+	content = "123456"
28
+
29
+	var autograph string
30
+	autograph = "【天威诚信】"
31
+
32
+	maprequest := make(map[string]interface{})
33
+
34
+	maprequest["phone"] = phone
35
+	maprequest["content"] = content
36
+	maprequest["autograph"] = autograph
37
+
38
+	byterequest, _ := json.Marshal(maprequest)
39
+
40
+	appId := beego.AppConfig.String("sign_appid")
41
+
42
+	serviceKye := beego.AppConfig.String("serviceKye")
43
+
44
+	serviceCode := beego.AppConfig.String("serviceCode")
45
+
46
+	reader := bytes.NewReader(byterequest)
47
+
48
+	signatureStr, _ := generateHMACSHA1SignatureOne(maprequest, serviceKye, serviceCode)
49
+
50
+	fmt.Println(signatureStr)
51
+
52
+	request, err := http.NewRequest("POST", url, reader)
53
+	if err != nil {
54
+		fmt.Println(err.Error())
55
+	}
56
+	fmt.Println("请求参数", request)
57
+	fmt.Println("Content-Signature", signatureStr)
58
+	fmt.Println("appID", appId)
59
+	fmt.Println("serviceCode", serviceCode)
60
+	request.Header.Set("appId", appId)
61
+	request.Header.Set("serviceCode", serviceCode)
62
+	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
63
+	request.Header.Set("Content-Signature", signatureStr)
64
+	client := http.Client{}
65
+
66
+	resp, err := client.Do(request)
67
+	if err != nil {
68
+		fmt.Println(err.Error())
69
+
70
+	}
71
+	respBytes, err := ioutil.ReadAll(resp.Body)
72
+	if err != nil {
73
+		fmt.Println(err.Error())
74
+
75
+	}
76
+	str := string(respBytes)
77
+	fmt.Println(str)
78
+	return str
79
+}
80
+
81
+// 生成签名
82
+func setSignatureStr(nonce string, secret_key string) string {
83
+	fmt.Println(nonce)
84
+	fmt.Println(secret_key)
85
+	str := secret_key + nonce
86
+	hash := sha256.New()
87
+	//输入数据
88
+	hash.Write([]byte(str))
89
+	//计算哈希值
90
+	bytes := hash.Sum(nil)
91
+	//将字符串编码为16进制格式,返回字符串
92
+	hashCode := hex.EncodeToString(bytes)
93
+	//返回哈希值
94
+	return hashCode
95
+}
96
+
97
+func generateHMACSHA1SignatureOne(data interface{}, key, serviceCode string) (string, error) {
98
+	// 将数据转换为 JSON 格式的字节数组
99
+	jsonData, err := json.Marshal(data)
100
+	if err != nil {
101
+		return "", err
102
+	}
103
+
104
+	// 将密钥和 serviceCode 进行拼接
105
+	signingKey := key + serviceCode
106
+
107
+	// 将签名密钥转换为字节数组
108
+	keyBytes := []byte(signingKey)
109
+
110
+	// 创建一个新的 HMAC-SHA1 实例
111
+	h := hmac.New(sha1.New, keyBytes)
112
+
113
+	// 将 JSON 数据添加到 HMAC 实例中
114
+	h.Write(jsonData)
115
+
116
+	signature := base64.StdEncoding.EncodeToString(h.Sum(nil))
117
+
118
+	// 返回带有前缀的签名字符串
119
+	return "HMAC-SHA1 " + signature, nil
120
+}