作者 Administrator

合并分支 'test' 到 'master'

Test



查看合并请求 !4
@@ -103,6 +103,8 @@ spec: @@ -103,6 +103,8 @@ spec:
103 value: "false" 103 value: "false"
104 - name: HTTP_PORT 104 - name: HTTP_PORT
105 value: "8082" 105 value: "8082"
  106 + - name: ALLIED_CREATION_GATEWAY_HOST
  107 + value: "https://allied-creation-gateway-dev.fjmaimaimai.com"
106 - name: ALLIED_CREATION_USER_HOST 108 - name: ALLIED_CREATION_USER_HOST
107 value: "http://allied-creation-user-dev.fjmaimaimai.com" 109 value: "http://allied-creation-user-dev.fjmaimaimai.com"
108 - name: ALLIED_CREATION_COOPERATION_HOST 110 - name: ALLIED_CREATION_COOPERATION_HOST
@@ -107,6 +107,8 @@ spec: @@ -107,6 +107,8 @@ spec:
107 value: "false" 107 value: "false"
108 - name: HTTP_PORT 108 - name: HTTP_PORT
109 value: "8082" 109 value: "8082"
  110 + - name: ALLIED_CREATION_GATEWAY_HOST
  111 + value: "https://allied-creation-gateway-test.fjmaimaimai.com"
110 - name: ALLIED_CREATION_USER_HOST 112 - name: ALLIED_CREATION_USER_HOST
111 value: "https://allied-creation-user-test.fjmaimaimai.com" 113 value: "https://allied-creation-user-test.fjmaimaimai.com"
112 - name: ALLIED_CREATION_COOPERATION_HOST 114 - name: ALLIED_CREATION_COOPERATION_HOST
@@ -6,6 +6,7 @@ require ( @@ -6,6 +6,7 @@ require (
6 github.com/GeeTeam/gt3-golang-sdk v0.0.0-20200116043922-446ca8a507d2 6 github.com/GeeTeam/gt3-golang-sdk v0.0.0-20200116043922-446ca8a507d2
7 github.com/beego/beego/v2 v2.0.1 7 github.com/beego/beego/v2 v2.0.1
8 github.com/dgrijalva/jwt-go v3.2.0+incompatible 8 github.com/dgrijalva/jwt-go v3.2.0+incompatible
  9 + github.com/forgoer/openssl v0.0.0-20210828150411-6c5378b5b719 // indirect
9 github.com/go-pg/pg/v10 v10.10.1 10 github.com/go-pg/pg/v10 v10.10.1
10 github.com/go-redis/redis v6.14.2+incompatible 11 github.com/go-redis/redis v6.14.2+incompatible
11 github.com/google/uuid v1.1.1 12 github.com/google/uuid v1.1.1
@@ -54,6 +54,8 @@ github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3C @@ -54,6 +54,8 @@ github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3C
54 github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= 54 github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
55 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 55 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
56 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 56 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
  57 +github.com/forgoer/openssl v0.0.0-20210828150411-6c5378b5b719 h1:sBIoJbXC+QBD9kL00aAxi7dfJJ70YHhiKzSN9yeTjbU=
  58 +github.com/forgoer/openssl v0.0.0-20210828150411-6c5378b5b719/go.mod h1:NMVFOzYeLVR7UiGTxsa+A21nrERTZ3Rv2JHDPcJpDyI=
57 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= 59 github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
58 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= 60 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
59 github.com/frankban/quicktest v1.4.1 h1:Wv2VwvNn73pAdFIVUQRXYDFp31lXKbqblIXo/Q5GPSg= 61 github.com/frankban/quicktest v1.4.1 h1:Wv2VwvNn73pAdFIVUQRXYDFp31lXKbqblIXo/Q5GPSg=
@@ -139,7 +139,7 @@ func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPer @@ -139,7 +139,7 @@ func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPer
139 // 分红支出 139 // 分红支出
140 DividendsIncome float64 `json:"dividendsIncome"` 140 DividendsIncome float64 `json:"dividendsIncome"`
141 // 企业信息 141 // 企业信息
142 - Company domain.CompanyData `json:"company"` 142 + Company domain.Company `json:"company"`
143 } 143 }
144 var cooperationCompanyStatisticsResponses []cooperationCompanyStatisticsResponse 144 var cooperationCompanyStatisticsResponses []cooperationCompanyStatisticsResponse
145 if err := json.UnmarshalFromString(json.MarshalToString(result), &cooperationCompanyStatisticsResponses); err != nil { 145 if err := json.UnmarshalFromString(json.MarshalToString(result), &cooperationCompanyStatisticsResponses); err != nil {
@@ -152,10 +152,10 @@ func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPer @@ -152,10 +152,10 @@ func (srv PersonStatisticsService) CompanyStatistics(cmd *command.CooperationPer
152 var values = make([]interface{}, 0) 152 var values = make([]interface{}, 0)
153 for i := range users.Users { 153 for i := range users.Users {
154 user := users.Users[i] 154 user := users.Users[i]
155 - cooperationCompanyStatisticsResponses[i].Company = domain.CompanyData{ 155 + cooperationCompanyStatisticsResponses[i].Company = domain.Company{
156 CompanyID: user.Org.OrgId, 156 CompanyID: user.Org.OrgId,
157 CompanyName: user.Org.OrgName, 157 CompanyName: user.Org.OrgName,
158 - CompanyLogo: user.Company.Logo, 158 + Logo: user.Company.Logo,
159 } 159 }
160 values = append(values, cooperationCompanyStatisticsResponses[i]) 160 values = append(values, cooperationCompanyStatisticsResponses[i])
161 } 161 }
@@ -70,12 +70,12 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec @@ -70,12 +70,12 @@ func (cooperationProjectService *CooperationProjectService) GetCooperationProjec
70 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 70 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
71 } 71 }
72 resultApplication, err := creationCooperationGateway.CooperationApplicationsSearch(allied_creation_cooperation.ReqCooperationApplicationSearch{ 72 resultApplication, err := creationCooperationGateway.CooperationApplicationsSearch(allied_creation_cooperation.ReqCooperationApplicationSearch{
73 - CooperationProjectNumber: resultProject.CooperationProject.CooperationProjectNumber,  
74 - PageNumber: 0,  
75 - PageSize: 0,  
76 - CompanyId: resultProject.Company.CompanyId,  
77 - OrgId: int64(resultProject.Org.OrgId),  
78 - CooperationApplicationStatus: 2, //审核通过的 73 + CooperationProjectNumber: resultProject.CooperationProject.CooperationProjectNumber,
  74 + PageNumber: 0,
  75 + PageSize: 0,
  76 + CompanyId: resultProject.Company.CompanyId,
  77 + OrgId: int64(resultProject.Org.OrgId),
  78 + //CooperationApplicationStatus: 2, //审核通过的
79 }) 79 })
80 if err != nil { 80 if err != nil {
81 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 81 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -8,12 +8,13 @@ import ( @@ -8,12 +8,13 @@ import (
8 const SERVICE_NAME = "allied-creation-gateway" 8 const SERVICE_NAME = "allied-creation-gateway"
9 9
10 var LOG_LEVEL = "debug" 10 var LOG_LEVEL = "debug"
11 -var LOG_TYPE = "console"// file, console, es 11 +var LOG_TYPE = "console" // file, console, es
12 var LOG_FRAMEWORK = "beego" // beego logrus 12 var LOG_FRAMEWORK = "beego" // beego logrus
13 var LOG_FILE = "app.log" 13 var LOG_FILE = "app.log"
14 var LOG_PREFIX = "[allied-creation-gateway]" 14 var LOG_PREFIX = "[allied-creation-gateway]"
15 15
16 var HTTP_PORT int = 8083 16 var HTTP_PORT int = 8083
  17 +var ALLIED_CREATION_GATEWAY_HOST = "https://allied-creation-gateway-dev.fjmaimaimai.com"
17 18
18 //天联共创基础模块 19 //天联共创基础模块
19 var ALLIED_CREATION_BASIC_HOST = "http://localhost:8080" //"http://allied-creation-basic-dev.fjmaimaimai.com" 20 var ALLIED_CREATION_BASIC_HOST = "http://localhost:8080" //"http://allied-creation-basic-dev.fjmaimaimai.com"
@@ -37,6 +38,9 @@ func init() { @@ -37,6 +38,9 @@ func init() {
37 if os.Getenv("LOG_TYPE") != "" { 38 if os.Getenv("LOG_TYPE") != "" {
38 LOG_TYPE = os.Getenv("LOG_TYPE") 39 LOG_TYPE = os.Getenv("LOG_TYPE")
39 } 40 }
  41 + if os.Getenv("ALLIED_CREATION_GATEWAY_HOST") != "" {
  42 + ALLIED_CREATION_GATEWAY_HOST = os.Getenv("ALLIED_CREATION_GATEWAY_HOST")
  43 + }
40 if os.Getenv("ALLIED_CREATION_BASIC_HOST") != "" { 44 if os.Getenv("ALLIED_CREATION_BASIC_HOST") != "" {
41 ALLIED_CREATION_BASIC_HOST = os.Getenv("ALLIED_CREATION_BASIC_HOST") 45 ALLIED_CREATION_BASIC_HOST = os.Getenv("ALLIED_CREATION_BASIC_HOST")
42 } 46 }
@@ -6,3 +6,9 @@ type CompanyData struct { @@ -6,3 +6,9 @@ type CompanyData struct {
6 CompanyLogo string `json:"companyLogo"` 6 CompanyLogo string `json:"companyLogo"`
7 CompanyName string `json:"companyName"` 7 CompanyName string `json:"companyName"`
8 } 8 }
  9 +
  10 +type Company struct {
  11 + CompanyID int `json:"companyId"`
  12 + Logo string `json:"logo"`
  13 + CompanyName string `json:"companyName"`
  14 +}
@@ -3,8 +3,8 @@ package domain @@ -3,8 +3,8 @@ package domain
3 import ( 3 import (
4 "encoding/base64" 4 "encoding/base64"
5 "fmt" 5 "fmt"
6 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/util"  
7 - "log" 6 + "github.com/forgoer/openssl"
  7 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/constant"
8 "time" 8 "time"
9 9
10 jwt "github.com/dgrijalva/jwt-go" 10 jwt "github.com/dgrijalva/jwt-go"
@@ -15,8 +15,8 @@ const ( @@ -15,8 +15,8 @@ const (
15 qrcodeCodeExpire int64 = 60 * 30 //15分钟过期 15 qrcodeCodeExpire int64 = 60 * 30 //15分钟过期
16 ) 16 )
17 17
18 -var aecSecret = []byte("mmm.qrcode.(%^&)")  
19 -var loginHost = "https://api.fjmaimaimai.com/app/auth/login/qrcode?key=" 18 +var aecSecret = []byte("mmm.qrcode.ecb.1")
  19 +var qrcodeLogin = "/v1/auth/login/qrcode?key="
20 20
21 type QrcodeMessage struct { 21 type QrcodeMessage struct {
22 jwt.StandardClaims 22 jwt.StandardClaims
@@ -48,34 +48,13 @@ func (qrmsg *QrcodeMessage) GenerateImageBase64() ([]byte, error) { @@ -48,34 +48,13 @@ func (qrmsg *QrcodeMessage) GenerateImageBase64() ([]byte, error) {
48 if err != nil { 48 if err != nil {
49 return nil, err 49 return nil, err
50 } 50 }
51 - key := loginHost + str  
52 - encryptedData, err := util.AesEncrypt([]byte(key), aecSecret) 51 + key := constant.ALLIED_CREATION_GATEWAY_HOST + qrcodeLogin + str
  52 + encryptedData, err := openssl.AesECBEncrypt([]byte(key), aecSecret, openssl.PKCS7_PADDING)
  53 + if err != nil {
  54 + return nil, err
  55 + }
53 qrmsg.Token = base64.StdEncoding.EncodeToString(encryptedData) 56 qrmsg.Token = base64.StdEncoding.EncodeToString(encryptedData)
54 - //初始化数据  
55 - //qrmsg.Token = string(encryptedData)  
56 qrmsg.IsLogin = false 57 qrmsg.IsLogin = false
57 -  
58 - // 输入日志  
59 - decrypted, _ := util.AesDecrypt(encryptedData, aecSecret)  
60 - if string(decrypted) == key {  
61 - log.Println("token:", str, "\n encrypt:", key, "\n decrypt:", string(decrypted))  
62 - }  
63 -  
64 - //qrCode, err := qr.Encode(str, qr.M, qr.Auto)  
65 - //if err != nil {  
66 - // return nil, err  
67 - //}  
68 - //qrCode, err = barcode.Scale(qrCode, 200, 200)  
69 - //if err != nil {  
70 - // return nil, err  
71 - //}  
72 - //var buf bytes.Buffer  
73 - //err = png.Encode(&buf, qrCode)  
74 - //if err != nil {  
75 - // return nil, err  
76 - //}  
77 - //var result []byte  
78 - //base64.StdEncoding.Encode(result, buf.Bytes())  
79 return encryptedData, err 58 return encryptedData, err
80 } 59 }
81 60
@@ -93,3 +93,30 @@ func AesDecrypt(crypted, key []byte) ([]byte, error) { @@ -93,3 +93,30 @@ func AesDecrypt(crypted, key []byte) ([]byte, error) {
93 origData = PKCS7UnPadding(origData, blockSize) 93 origData = PKCS7UnPadding(origData, blockSize)
94 return origData, nil 94 return origData, nil
95 } 95 }
  96 +
  97 +func ECBEncrypt(block cipher.Block, src, key []byte) ([]byte, error) {
  98 + blockSize := block.BlockSize()
  99 +
  100 + encryptData := make([]byte, len(src))
  101 + tmpData := make([]byte, blockSize)
  102 +
  103 + for index := 0; index < len(src); index += blockSize {
  104 + block.Encrypt(tmpData, src[index:index+blockSize])
  105 + copy(encryptData, tmpData)
  106 + }
  107 + return encryptData, nil
  108 +}
  109 +
  110 +func ECBDecrypt(block cipher.Block, src, key []byte) ([]byte, error) {
  111 + dst := make([]byte, len(src))
  112 +
  113 + blockSize := block.BlockSize()
  114 + tmpData := make([]byte, blockSize)
  115 +
  116 + for index := 0; index < len(src); index += blockSize {
  117 + block.Decrypt(tmpData, src[index:index+blockSize])
  118 + copy(dst, tmpData)
  119 + }
  120 +
  121 + return dst, nil
  122 +}
@@ -3,28 +3,34 @@ package util @@ -3,28 +3,34 @@ package util
3 import ( 3 import (
4 "encoding/base64" 4 "encoding/base64"
5 "fmt" 5 "fmt"
  6 + "github.com/forgoer/openssl"
6 "testing" 7 "testing"
7 ) 8 )
8 9
9 func Test_Aes(t *testing.T) { 10 func Test_Aes(t *testing.T) {
10 //key的长度必须是16、24或者32字节,分别用于选择AES-128, AES-192, or AES-256 11 //key的长度必须是16、24或者32字节,分别用于选择AES-128, AES-192, or AES-256
11 var aeskey = []byte("mmm.qrcode.(%^&)") 12 var aeskey = []byte("mmm.qrcode.(%^&)")
12 - pass := []byte("vdncloud123456") 13 + pass := []byte("https://www.baidu.com/")
13 xpass, err := AesEncrypt(pass, aeskey) 14 xpass, err := AesEncrypt(pass, aeskey)
14 if err != nil { 15 if err != nil {
15 fmt.Println(err) 16 fmt.Println(err)
16 return 17 return
17 } 18 }
18 - 19 + fmt.Printf("base64 加密前:%v\n", string(xpass))
19 pass64 := base64.StdEncoding.EncodeToString(xpass) 20 pass64 := base64.StdEncoding.EncodeToString(xpass)
20 - fmt.Printf("加密后:%v\n", pass64) 21 + fmt.Printf("base64 加密:%v\n", pass64)
  22 +
  23 + //pass64 ="qYy8JqxzYGkhmDCZ6581/Fg9LfcGGqlAVjCWHpSayNs="
21 24
22 bytesPass, err := base64.StdEncoding.DecodeString(pass64) 25 bytesPass, err := base64.StdEncoding.DecodeString(pass64)
  26 + fmt.Printf("base64 解密:%v\n", string(bytesPass))
23 if err != nil { 27 if err != nil {
24 fmt.Println(err) 28 fmt.Println(err)
25 return 29 return
26 } 30 }
27 31
  32 + //bytesPass:=xpass
  33 + //fmt.Println(string(bytesPass))
28 tpass, err := AesDecrypt(bytesPass, aeskey) 34 tpass, err := AesDecrypt(bytesPass, aeskey)
29 if err != nil { 35 if err != nil {
30 fmt.Println(err) 36 fmt.Println(err)
@@ -32,3 +38,38 @@ func Test_Aes(t *testing.T) { @@ -32,3 +38,38 @@ func Test_Aes(t *testing.T) {
32 } 38 }
33 fmt.Printf("解密后:%s\n", tpass) 39 fmt.Printf("解密后:%s\n", tpass)
34 } 40 }
  41 +
  42 +func Test_Base64(t *testing.T) {
  43 + xpass := []byte("123") //123
  44 + fmt.Printf("base64 加密前:%v\n", string(xpass))
  45 + pass64 := base64.StdEncoding.EncodeToString(xpass)
  46 + fmt.Printf("base64 加密:%v\n", pass64)
  47 +
  48 + bytesPass, err := base64.StdEncoding.DecodeString(pass64)
  49 + fmt.Printf("base64 解密:%v\n", string(bytesPass))
  50 + if err != nil {
  51 + fmt.Println(err)
  52 + return
  53 + }
  54 +}
  55 +
  56 +func Test_AES_ECB(t *testing.T) {
  57 + src := []byte("123456")
  58 + key := []byte("mmm.qrcode.ecb.1")
  59 + dst, _ := openssl.AesECBEncrypt(src, key, openssl.PKCS7_PADDING)
  60 + fmt.Println(base64.StdEncoding.EncodeToString(dst)) // 1jdzWuniG6UMtoa3T6uNLA==
  61 +
  62 + dst, _ = openssl.AesECBDecrypt(dst, key, openssl.PKCS7_PADDING)
  63 + fmt.Println(string(dst)) // 123456
  64 +}
  65 +
  66 +func Test_AES_CBC(t *testing.T) {
  67 + src := []byte("123456")
  68 + key := []byte("mmm.qrcode.ecb.1")
  69 + iv := []byte("mmm.qrcode.ecb.1")
  70 + dst, _ := openssl.AesCBCEncrypt(src, key, iv, openssl.PKCS7_PADDING)
  71 + fmt.Println(base64.StdEncoding.EncodeToString(dst)) // 1jdzWuniG6UMtoa3T6uNLA==
  72 +
  73 + dst, _ = openssl.AesCBCDecrypt(dst, key, iv, openssl.PKCS7_PADDING)
  74 + fmt.Println(string(dst)) // 123456
  75 +}