作者 庄敏学

Merge branch 'bugs' into dev

FROM 192.168.0.243:5000/mmm/mmmopp:20200422 as builder
#FROM golang:1.13 as builder
#FROM 192.168.0.243:5000/mmm/mmmopp:base as builder
FROM golang:1.13 as builder
ENV GOPROXY https://goproxy.cn
ENV GO111MODULE on
ENV GOPATH /go
#RUN git clone http://gitlab.fjmaimaimai.com/mmm-go/gocomm.git /go/src/gocomm
#RUN cd /go/src/gocomm \
# && git pull
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' > /etc/timezone
RUN git clone http://gitlab.fjmaimaimai.com/mmm-go/gocomm.git /go/src/gocomm
RUN cd /go/src/gocomm \
&& git pull
WORKDIR /go/src/opp
COPY go.mod .
... ... @@ -14,8 +16,8 @@ COPY go.mod .
COPY . .
RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o opp main.go
#FROM alpine:latest
FROM 192.168.0.243:5000/mmm/mmmopp:20200110
FROM alpine:latest
#FROM 192.168.0.243:5000/mmm/mmmopp:base
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache tzdata \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
... ...
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
... ...
-----BEGIN CERTIFICATE-----
MIIF8zCCBNugAwIBAgIQNQFdwmxIowVU6OuCfaJfMzANBgkqhkiG9w0BAQsFADBE
MQswCQYDVQQGEwJDTjEaMBgGA1UECgwRV29TaWduIENBIExpbWl0ZWQxGTAXBgNV
BAMMEFdvU2lnbiBPViBTU0wgQ0EwHhcNMTgwMjEyMDkyNzQxWhcNMjEwMjEwMDky
NzQxWjCBlzELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ+emj+W7uuS5sOS5sOS5sOS/
oeaBr+enkeaKgOaciemZkOWFrOWPuDESMBAGA1UECwwJ5oqA5pyv6YOoMRIwEAYD
VQQHDAnnpo/lt57luIIxEjAQBgNVBAgMCeemj+W7uuecgTEaMBgGA1UEAwwRKi5m
am1haW1haW1haS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCO
VhMwaBuc29GeU2lIFeRcIL0UZxGMedlvl7P9uBq2xRrBqf067hr3ZfZwXXFC8Auu
9XwWA2mRQvijxdR5YA3gNY6lI0o1TIRjLryNevgVJQVIES1TK1msBZ3kr6e902IA
JkVR83IIPLa+zWYG2wD1NXIkSOTYxT7EyMKDwmK/gvAYnN7ffHtUOL+q6ttpZCks
e+mysNO1oLnWz4la7l60rWsM7jmCOmjpCZpK43GS48CMlU7WrAJ/QXPkfcQeJUWb
PT2dVsUIf/tr93xYHU0w1FkAQ6Q4tR1UUuSsg0xrBxYGrHh2X44MhrwPnQiIe4Bv
HiPqRds2QOlABjP7M6Y1AgMBAAGjggKLMIIChzAMBgNVHRMBAf8EAjAAMDwGA1Ud
HwQ1MDMwMaAvoC2GK2h0dHA6Ly93b3NpZ24uY3JsLmNlcnR1bS5wbC93b3NpZ24t
b3ZjYS5jcmwwdwYIKwYBBQUHAQEEazBpMC4GCCsGAQUFBzABhiJodHRwOi8vd29z
aWduLW92Y2Eub2NzcC1jZXJ0dW0uY29tMDcGCCsGAQUFBzAChitodHRwOi8vcmVw
b3NpdG9yeS5jZXJ0dW0ucGwvd29zaWduLW92Y2EuY2VyMB8GA1UdIwQYMBaAFKET
VNxWcywngsrIhO/uvwD9X6tWMB0GA1UdDgQWBBTweqaiBhFfCx9IQBfvV0NgQfmx
vTAOBgNVHQ8BAf8EBAMCBaAwggEgBgNVHSAEggEXMIIBEzAIBgZngQwBAgIwggEF
BgwqhGgBhvZ3AgUBDAIwgfQwgfEGCCsGAQUFBwICMIHkMB8WGEFzc2VjbyBEYXRh
IFN5c3RlbXMgUy5BLjADAgEBGoHAVXNhZ2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBp
cyBzdHJpY3RseSBzdWJqZWN0ZWQgdG8gdGhlIENFUlRVTSBDZXJ0aWZpY2F0aW9u
IFByYWN0aWNlIFN0YXRlbWVudCAoQ1BTKSBpbmNvcnBvcmF0ZWQgYnkgcmVmZXJl
bmNlIGhlcmVpbiBhbmQgaW4gdGhlIHJlcG9zaXRvcnkgYXQgaHR0cHM6Ly93d3cu
Y2VydHVtLnBsL3JlcG9zaXRvcnkuMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjAtBgNVHREEJjAkghEqLmZqbWFpbWFpbWFpLmNvbYIPZmptYWltYWltYWku
Y29tMA0GCSqGSIb3DQEBCwUAA4IBAQBHCrxm1qPBW0LuEhloYvMqwKJsIj2loPd1
c8EIL7t6ePX+nQCqQfwYjSNMXkt7CqcQlMuFKez81h4dP+CF+SzjHkmQpSXb7J9X
SMctV4hzaLqMfwTE5sg48mj0bIrOPaR3ycLtOWIek3UJh3nYqPcXyDxN7ZoheNZ5
hi68fCqzOwGVCAzaoB9ZQKZkJ0SYcf9xtBzGkrOBu1B7JNga7ZlWqeInc93elLga
nq3qTIwvJxwsjq1o2rVeGFQ4G7M+TfbBUzq1VMni3H9ot9L4Za4B0iGFk9vYTATd
QVZsCXJ4dCtB+sYNfMsQsMsu9TmBb3/unwyLhPM1OWVXWPOYbIC8
MIIGdzCCBV+gAwIBAgIRAKOGExcYxMFs7a/qR45ccZ8wDQYJKoZIhvcNAQELBQAw
XDELMAkGA1UEBhMCQ04xGjAYBgNVBAoTEVdvVHJ1cyBDQSBMaW1pdGVkMTEwLwYD
VQQDDChXb1RydXMgT1YgU2VydmVyIENBICBbUnVuIGJ5IHRoZSBJc3N1ZXJdMB4X
DTIzMDMwOTAwMDAwMFoXDTI0MDMxMTIzNTk1OVowZjELMAkGA1UEBhMCQ04xEjAQ
BgNVBAgMCeemj+W7uuecgTEnMCUGA1UECgwe5aSp6IGU5L+h5oGv56eR5oqA5pyJ
6ZmQ5YWs5Y+4MRowGAYDVQQDDBEqLmZqbWFpbWFpbWFpLmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKU4iLqAVI5YUUN99tPsha0uxQIz88t2RYiE
c04T+J2o6Mu0HCfIdT1V9Fz2RmQqBd/6KNg44WuojWMbtkikCcpmJ7fwQCwcyw6V
+FDkxKhDEcommOb/SCudr/t5j015gWzpO79CzkS1izlQdgLuXq+1azw6Eyzh2P8U
8mcl+iDS/6JvEPrCk4LavXGCRK8/dVr1lyjqw6dx14CHEDlD2aSfEjXeMZ1gVB2I
5X2nbLqhkILLGPKAV8e+ttHVQvMTlN3/8T4132cjVFdVEwjMFOezgIOAohD5OlUX
7Feu1XlzR3bPeTbM/2d4DGSJg/jemhCXB3sDioxCBFZVdGlqCTkCAwEAAaOCAygw
ggMkMB8GA1UdIwQYMBaAFA1JjxUze8BPtvs6OAn8NBXaYN0UMB0GA1UdDgQWBBRu
yio9Vu6l2SfvNTuKroHDPaMA0DAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIw
ADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwSQYDVR0gBEIwQDA0Bgsr
BgEEAbIxAQICFjAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQ
UzAIBgZngQwBAgIwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5jcmxvY3Nw
LmNuL1dvVHJ1c09WU2VydmVyQ0FfMi5jcmwwbAYIKwYBBQUHAQEEYDBeMDgGCCsG
AQUFBzAChixodHRwOi8vYWlhLmNybG9jc3AuY24vV29UcnVzT1ZTZXJ2ZXJDQV8y
LmNydDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AuY3Jsb2NzcC5jbjCCAXwGCisG
AQQB1nkCBAIEggFsBIIBaAFmAHYAdv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/m
Z0xaOnQAAAGGxFcjwgAABAMARzBFAiEAuPTNwAl1mjbjoHtOYU4q2i1e3PZaj0wG
lq1cCDel16UCIAcxzhlgKgQ05LY4nXA8bW5+XVon35D9nnkzJyRJeFxrAHUA2ra/
az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGGxFckHAAABAMARjBEAiAY
VwXKeFjxw5xHzHdfUQgHmk6Qkuts1WrP0oBIQSMoWwIgX08A08cy82Yl8YoM8BPP
I+Dp5eKlyeJG2RlbCP4CL2YAdQDuzdBk1dsazsVct520zROiModGfLzs3sNRSFlG
cR+1mwAAAYbEVyQ+AAAEAwBGMEQCIAVmJkO+ktlxZi5HUV4XGtHtF45BYyZdKGXX
CH/PD+MzAiAi5Aq8xNImq0R383XN7Ew3Z0kbEHEWmGGyESdWyL/2rTAtBgNVHREE
JjAkghEqLmZqbWFpbWFpbWFpLmNvbYIPZmptYWltYWltYWkuY29tMA0GCSqGSIb3
DQEBCwUAA4IBAQAl/gxgEKpSLf8UkBhD8eXA/Mg9nVLrIR1Wcutj8ujBA4GTtwsd
5fJwOsWGyIEg40O41iwTbIozpu2ChY635RLqu+eJdBHcdlP6Thfw3s37+z3LWalN
2uVmQBSGwUJtEnTR/yoWZItMUEenhzbtUtDcoKsdW/br9tnDIZDAGbYhpxF3rv8K
t7wJYqazhUNSEymnvRB9n0ZKkZ1Tjr58v4zyKxgd+t+1jAYYA62r6JHz2gnPdEV6
fwVwbQzeJekKfsCRrToGNsXDQKCeLx8LK0r292h4Y9iVM8eS+w4eFP2tQqK4ijY4
BgLnLPfoVs0LZODa1slb+dG5ZBSn6dk+ZAEi
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEtTCCA52gAwIBAgIRAO8FGnQaHZQJ/KXkZA+NPJswDQYJKoZIhvcNAQELBQAw
fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNjExMDkwODMzNDRa
Fw0yNjExMDkwODMzNDRaMEQxCzAJBgNVBAYTAkNOMRowGAYDVQQKDBFXb1NpZ24g
Q0EgTGltaXRlZDEZMBcGA1UEAwwQV29TaWduIE9WIFNTTCBDQTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKRzU7QtbSdi6uUiqewzx81eEdrg0RROHTs1
eXndSwxxUAVDC+FPYvpgWc+bYMVjUJQEIP+SNzsIGvB/YoabRoN7cLBDzPTgYnW8
Pl/wYWXuGNyr1E7bV9Fec37HlvhE39Ntwp31gjMFwTOZ7Zw0QzS7w9PjO4A4anwb
maBJgrRa3GFSgoJ+WIr5brQ6hEgm7rKRNPx6L9Sj2aSl/EWRPPv73j5xeWGcgOPp
U+8eZmqpX+XfCl34o5OQJWi/F7bACetVhvFtWGuLNcZ0eYwU13jOEx3NNsILzIYP
oWJztxd3aPkQOX6cNbJGTvLRcfmGDM0ASq3/BsCrR0o/ruCcd6cCAwEAAaOCAWYw
ggFiMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKETVNxWcywngsrIhO/u
vwD9X6tWMB8GA1UdIwQYMBaAFAh2zcsH/yT2xc3tu5C84oQ3RnX3MA4GA1UdDwEB
/wQEAwIBBjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0fBC4w
LDAqoCigJoYkaHR0cDovL3N1YmNhLmNybC5jZXJ0dW0ucGwvY3RuY2EuY3JsMGsG
CCsGAQUFBwEBBF8wXTAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2Vy
dHVtLmNvbTAxBggrBgEFBQcwAoYlaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBs
L2N0bmNhLmNlcjA5BgNVHSAEMjAwMC4GBFUdIAAwJjAkBggrBgEFBQcCARYYaHR0
cDovL3d3dy5jZXJ0dW0ucGwvQ1BTMA0GCSqGSIb3DQEBCwUAA4IBAQCLBeq0MMgd
qULSuAua1YwHNgbFAAnMXd9iiSxbIKoSfYKsrFggNCFX73ex4b64iIhQ2BBr82/B
MNpC4rEvnr1x0oFv8DBO1GYimQaq8E9hjnO1UYYEPelVsykOpnDLklTsBZ4vhhq/
hq1mbs+6G+vsAjO9jVnuxP6toOTNBqvURRumMF0P165MoFdh0kzSjUts+1d8Llnb
DJaZht0O19k1ZdBBmPD3cwbTI+tChOELAVt4Nb5dDGPWqSxc5Nl2j95T3aK1KL2d
2vV16DSVShJIz04QHatcJlNZLJDbSu70c5fPU8YiJdRpfkubANAmwcDB+uNhtYz+
zEji0KnE2oNA
MIIF4TCCA8mgAwIBAgIQHQgpVDhMv3SvabmRFpvwLTANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
MTA4MDAwMDAwWhcNMzAwMTA3MjM1OTU5WjBcMQswCQYDVQQGEwJDTjEaMBgGA1UE
ChMRV29UcnVzIENBIExpbWl0ZWQxMTAvBgNVBAMMKFdvVHJ1cyBPViBTZXJ2ZXIg
Q0EgIFtSdW4gYnkgdGhlIElzc3Vlcl0wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCARFLq6kqQRZ4SdFMPdd3XJTcOdVVT5bvZZx0VVDrkw3TmSAloQVFf
RhqDOSXg4CsIaa64qFSrC3a5sc8LgRhx7AUdvoUdfvdxIY1uoyxRWpoWO8oTUkSn
EXjEPf+zrcU5cWTOi32xWL9vklYds7iOQwgsKAHDzt4an8MLGvcLxAHciyiKcDEh
HZOGUHO5bKaCq+kP2rJCfVSlNvdyl1B8q+aGWXoi0gXGVL7WX4pcWj+DGuITbLB2
MzMytse4MjLJ84zaXh0UD4STlyD8tu/fakdxIwQ7K3/pP3RoGj1R9CvMWXUU+fZm
KNLW5565hd9Bh3Wkz8b4ApgMD9o3RUjTAgMBAAGjggFwMIIBbDAfBgNVHSMEGDAW
gBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUDUmPFTN7wE+2+zo4Cfw0
Fdpg3RQwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0l
BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGyMQEC
AhYwCAYGZ4EMAQICMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRy
dXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBx
BggrBgEFBQcBAQRlMGMwOgYIKwYBBQUHMAKGLmh0dHA6Ly9jcnQudXNlcnRydXN0
LmNvbS9VU0VSVHJ1c3RSU0FBQUFDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9v
Y3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggIBAA5G7XA+fNKyj7Fy
uotoII38/32eZ4UrC1vGFPEtDyd0yzOrr7SvQUoO2GLxFzIQ0SsgMNXJ4UAhMkTD
yz1OA0tx0g0GjOQXBGA/yfRR7SgitRJAdbqkPfppMn+dtKXCHHx35ohTL0PklRdb
mXacvR7rXUIiJMdsvZZqYwc+DpGJ+Zv0sRJZEL7pm1oZv6EV+UzjAlOnLe6yrnyD
c99Kk1H/RFPUzduUWjiVR2aMDT1oMiwYeB2Zq60Sb201jqZPNQj5E+TkDD5BPFVc
kLeRi3LyXBUuBvXPsdLtBNlr+LExtCDd66kjeUe2/YbTHF4ai5PZPraQxgbOJJyc
gizGl/JOgrIQPUOLSQvXlxpKEqS+0z6KqV52bco2PNrC0f8ILKuw0nsfhgcGy46d
Su8fmU9+FT6e61i2nteKvt8qkkSkAJKQxRUWYduN24mG/OOIkoeOPdYHi+qEfbyI
qxiiqcH9cZgLK9AVuJoKtt7vg21OyrWi7S5T/WbTfTz9XL7QGe8ZODZZx6d50uo/
lDOmXm3p/kdGApvUF1UrL+og22jBLi0Ns6xzCfzrI3SpC9abvU8E9EnxQABuu/gM
/B63dbaZzSsMVFxeECD9nMWv7IH+/rqyGmjqEJzgKdPGvXhqpebQ1HhWrV+j+ipc
jplXB1j3GCozDFsninXG102N6wC8
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEtDCCA5ygAwIBAgIRAJOShUABZXFflH8oj+/JmygwDQYJKoZIhvcNAQELBQAw
PjELMAkGA1UEBhMCUEwxGzAZBgNVBAoTElVuaXpldG8gU3AuIHogby5vLjESMBAG
A1UEAxMJQ2VydHVtIENBMB4XDTA4MTAyMjEyMDczN1oXDTI3MDYxMDEwNDYzOVow
fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAOP7faNyusLwyRSH9WsBTuFuQAe6bSddf/dbLbNax1Ff
q6QypmGHtm4PhtIwApf412lXoRg5XWpkecYBWaw8MUo4fNIE0kso6CBfOweizE1z
2/OuT8dW1Vqnlon686to1COGWSfPCSe8rG5ygxwwct/gounS4XR1Gb0qnnsVVAQb
10M5rVUoxeIau/TA5K44STPMdoWfOUXSpJ7yEoxR+HzkLX/1rF/rFp+xLdG6zJFC
d0wlyZA4b9vwzPuOHpdZPtVgTuYFKO1JeRNLukjbL/ly0znK/h/YNHL1tEDPMQHD
7N4RLRddH7hQ0V4Zp2neBzMoylCV+adUy1SGUEWp+UkCAwEAAaOCAWswggFnMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFAh2zcsH/yT2xc3tu5C84oQ3RnX3MFIG
A1UdIwRLMEmhQqRAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNw
LiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQYIDAQAgMA4GA1UdDwEB/wQEAwIB
BjAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vY3JsLmNlcnR1bS5wbC9jYS5jcmww
aAYIKwYBBQUHAQEEXDBaMCgGCCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1j
ZXJ0dW0uY29tMC4GCCsGAQUFBzAChiJodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0u
cGwvY2EuY2VyMDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRw
Oi8vd3d3LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQELBQADggEBAI3m/UBmo0yc
p6uh2oTdHDAH5tvHLeyDoVbkHTwmoaUJK+h9Yr6ydZTdCPJ/KEHkgGcCToqPwzXQ
1aknKOrS9KsGhkOujOP5iH3g271CgYACEnWy6BdxqyGVMUZCDYgQOdNv7C9C6kBT
Yr/rynieq6LVLgXqM6vp1peUQl4E7Sztapx6lX0FKgV/CF1mrWHUdqx1lpdzY70a
QVkppV4ig8OLWfqaova9ML9yHRyZhpzyhTwd9yaWLy75ArG1qVDoOPqbCl60BMDO
TjksygtbYvBNWFA0meaaLNKQ1wmB1sCqXs7+0vehukvZ1oaOGR+mBkdCcuBWCgAc
eLmNzJkEN0k=
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
vGp4z7h/jnZymQyd/teRCBaho1+V
-----END CERTIFICATE-----
... ...
... ... @@ -17,7 +17,7 @@ import (
"time"
)
//点赞/收藏列表
// 点赞/收藏列表
func Favorite(header *protocol.RequestHeader, request *protocol.FavoriteRequest) (rsp *protocol.FavoriteResponse, err error) {
var (
favorites []*models.ChanceFavorite
... ... @@ -59,7 +59,7 @@ func Favorite(header *protocol.RequestHeader, request *protocol.FavoriteRequest)
return
}
//点赞/收藏 取消点赞/收藏
// 点赞/收藏 取消点赞/收藏
func SympathyAction(header *protocol.RequestHeader, request *protocol.SympathyActionRequest) (rsp *protocol.SympathyActionResponse, err error) {
var (
exists bool
... ... @@ -181,7 +181,7 @@ END:
return
}
//机会类型
// 机会类型
func ChanceType(header *protocol.RequestHeader, request *protocol.ChanceTypeRequest) (rsp *protocol.ChanceTypeResponse, err error) {
var (
list []*models.ChanceType
... ... @@ -216,7 +216,7 @@ func ChanceType(header *protocol.RequestHeader, request *protocol.ChanceTypeRequ
return
}
//机会储备类型
// 机会储备类型
func ChanceReserveType(header *protocol.RequestHeader, request *protocol.ChanceReserveTypeRequest) (rsp *protocol.ChanceReserveTypeResponse, err error) {
var (
v []*models.ChanceReserveType
... ... @@ -229,7 +229,7 @@ func ChanceReserveType(header *protocol.RequestHeader, request *protocol.ChanceR
return
}
//获取机会对应的模板列表
// 获取机会对应的模板列表
func Templates(header *protocol.RequestHeader, request *protocol.TemplatesRequest) (rsp *protocol.TemplatesResponse, err error) {
var (
templates []*models.AuditTemplate
... ... @@ -290,7 +290,7 @@ func Templates(header *protocol.RequestHeader, request *protocol.TemplatesReques
return
}
//模板详情
// 模板详情
func Template(header *protocol.RequestHeader, request *protocol.TemplateRequest) (rsp *protocol.TemplateResponse, err error) {
var (
templates *models.AuditTemplate
... ... @@ -414,7 +414,7 @@ func checkTemplateIsVisible(header *protocol.RequestHeader, template *models.Aud
return
}
//模板示例
// 模板示例
func ChanceExample(header *protocol.RequestHeader, request *protocol.ChanceExampleRequest) (rsp *protocol.ChanceExampleResponse, err error) {
var (
example string
... ... @@ -435,7 +435,7 @@ func ChanceExample(header *protocol.RequestHeader, request *protocol.ChanceExamp
return
}
//提交机会
// 提交机会
func ChanceSubmit(header *protocol.RequestHeader, request *protocol.ChanceSubmitRequest) (rsp *protocol.ChanceSubmitResponse, err error) {
var (
template *models.AuditTemplate
... ... @@ -575,7 +575,7 @@ func ChanceSubmit(header *protocol.RequestHeader, request *protocol.ChanceSubmit
return
}
//设置机会自动通过
// 设置机会自动通过
func setChanceAutoPass(header *protocol.RequestHeader, chance *models.Chance, orm orm.Ormer, chanceType *models.ChanceType) (err error) {
var (
approveData protocol.ApproveData
... ... @@ -604,7 +604,7 @@ func setChanceAutoPass(header *protocol.RequestHeader, chance *models.Chance, or
return
}
//机会编辑
// 机会编辑
func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdateRequest) (rsp *protocol.ChanceUpdateResponse, err error) {
var (
template *models.AuditTemplate
... ... @@ -820,7 +820,7 @@ func ChanceUpdate(header *protocol.RequestHeader, request *protocol.ChanceUpdate
return
}
//检查机会更新
// 检查机会更新
func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance, request *protocol.ChanceUpdateRequest) {
defer func() {
if p := recover(); p != nil {
... ... @@ -992,7 +992,7 @@ func CheckChanceDifferent(header *protocol.RequestHeader, chance *models.Chance,
}
}
//保存机会变更日志
// 保存机会变更日志
func SaveChanceReviseLog(header *protocol.RequestHeader, chance *models.Chance, modifyLog protocol.ChanceReviseLog) (err error) {
var (
chanceReviseLog *models.ChanceReviseLog
... ... @@ -1041,7 +1041,7 @@ func SaveChanceReviseLog(header *protocol.RequestHeader, chance *models.Chance,
return
}
//修改公开状态
// 修改公开状态
func ChanceChangePublish(header *protocol.RequestHeader, request *protocol.ChanceChangePublishRequest) (rsp *protocol.ChanceChangePublishResponse, err error) {
var (
chance *models.Chance
... ... @@ -1106,7 +1106,7 @@ func ChanceChangePublish(header *protocol.RequestHeader, request *protocol.Chanc
return
}
//发送审核日志
// 发送审核日志
func saveApproveMsgChangePublic(header *protocol.RequestHeader, orm orm.Ormer, chance *models.Chance, approveData protocol.PublicData) (err error) {
var (
parames = make([]interface{}, 0)
... ... @@ -1131,7 +1131,7 @@ func saveApproveMsgChangePublic(header *protocol.RequestHeader, orm orm.Ormer, c
return
}
//修改评分
// 修改评分
func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceChangeScoreRequest) (rsp *protocol.ChanceChangeScoreResponse, err error) {
var (
chance *models.Chance
... ... @@ -1191,7 +1191,7 @@ func ChanceChangeScore(header *protocol.RequestHeader, request *protocol.ChanceC
return
}
//计算发现分
// 计算发现分
func ChanceCalculateScore(header *protocol.RequestHeader, request *protocol.ChanceCalculateScoreRequest) (rsp *protocol.ChanceCalculateScoreResponse, err error) {
var (
config *models.SysConfig
... ... @@ -1250,7 +1250,7 @@ func ChanceCalculateScore(header *protocol.RequestHeader, request *protocol.Chan
return
}
//计算默认发现分
// 计算默认发现分
func ChanceCalculateDefautlScore(header *protocol.RequestHeader) (rsp protocol.Score, err error) {
var (
config *models.SysConfig
... ... @@ -1293,7 +1293,7 @@ func ChanceCalculateDefautlScore(header *protocol.RequestHeader) (rsp protocol.S
// return
//}
//生成审批流-提交记录
// 生成审批流-提交记录
func GenAuditFlowProcess_Submit(userId, chanceId int64, templateId int64, reviewStatus int) (v *models.AuditFlowProcess) {
v = &models.AuditFlowProcess{
Id: idgen.Next(),
... ... @@ -1315,7 +1315,7 @@ func GenAuditFlowProcess_Submit(userId, chanceId int64, templateId int64, review
return
}
//生成审批流
// 生成审批流
func GenAuditFlowProcess(header *protocol.RequestHeader, chanceId int64, relatedDeparmentId int64, templateId int64, auditConfig *protocol.AuditConfig) (v []*models.AuditFlowProcess, err error) {
var (
configs []*models.AuditFlowConfig
... ... @@ -1504,7 +1504,7 @@ func resolveActionType(t uint) string {
return fmt.Sprintf("%v", t)
}
//获取部门长用户列表
// 获取部门长用户列表
func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64) (ids []int64, err error) {
var (
departments *models.Department
... ... @@ -1559,7 +1559,7 @@ func getDepartmentors(header *protocol.RequestHeader, relatedDeparmentId int64)
return
}
//获取角色ids
// 获取角色ids
func getRoleUsers(header *protocol.RequestHeader, roleId int) (ids []int64, err error) {
var (
userRole []*models.UserRole
... ... @@ -1580,7 +1580,7 @@ func getRoleUsers(header *protocol.RequestHeader, roleId int) (ids []int64, err
return
}
//递归寻找上一级部门长
// 递归寻找上一级部门长
func getParentDepartmentors(pid int64) (ids []int64) {
var (
department *models.Department
... ... @@ -1601,9 +1601,9 @@ func getParentDepartmentors(pid int64) (ids []int64) {
return getParentDepartmentors(department.ParentId)
}
//首页机会池统计
// 首页机会池统计
func ChanceStatistics(header *protocol.RequestHeader, request *protocol.ChanceStatisticsRequest) (rsp *protocol.ChanceStatisticsResponse, err error) {
var (
/*var (
chanceType []*models.ChanceType
total int
sum int
... ... @@ -1611,9 +1611,9 @@ func ChanceStatistics(header *protocol.RequestHeader, request *protocol.ChanceSt
if chanceType, err = models.GetChanceTypeAll(header.CompanyId); err != nil {
log.Error(err)
return
}
}*/
rsp = &protocol.ChanceStatisticsResponse{}
for i := range chanceType {
/*for i := range chanceType {
item := chanceType[i]
if total, err = agg.GetChancePool(header.UserId, header.CompanyId, models.NewChancePoolOption(item.Id, []int{}, models.ChancePool, 0), 0, false, 0, 0, nil); err != nil {
log.Error(err)
... ... @@ -1629,11 +1629,11 @@ func ChanceStatistics(header *protocol.RequestHeader, request *protocol.ChanceSt
Total: total,
})
}
rsp.ChanceTotal = sum
rsp.ChanceTotal = sum*/
return
}
//我提交的机会
// 我提交的机会
func MySubmitChance(header *protocol.RequestHeader, request *protocol.MySubmitChanceRequest) (rsp *protocol.MySubmitChanceResponse, err error) {
var (
ormItems []protocol.CommChanceItemOrm
... ... @@ -1673,7 +1673,7 @@ func MySubmitChance(header *protocol.RequestHeader, request *protocol.MySubmitCh
return
}
//机会池
// 机会池
func ChancePool(header *protocol.RequestHeader, request *protocol.ChancePoolRequest) (rsp *protocol.ChancePoolResponse, err error) {
var (
chanceItems []protocol.ChancePoolItemOrm
... ... @@ -1737,7 +1737,7 @@ func ChancePool(header *protocol.RequestHeader, request *protocol.ChancePoolRequ
return
}
//我审核的机会
// 我审核的机会
func MyApproveChance(header *protocol.RequestHeader, request *protocol.MyApproveChanceRequest) (rsp *protocol.MyApproveChanceResponse, err error) {
var (
ormItems []protocol.ChanceApproveItemOrm
... ... @@ -1868,7 +1868,7 @@ func MyCollectChance(header *protocol.RequestHeader, request *protocol.MyCollect
return
}
//我点赞的机会
// 我点赞的机会
func MyThumbUpChance(header *protocol.RequestHeader, request *protocol.MyThumbUpChanceRequest) (rsp *protocol.MyThumbUpChanceResponse, err error) {
var (
ormItems []protocol.ChanceThumbUpItemOrm
... ... @@ -1929,7 +1929,7 @@ func MyThumbUpChance(header *protocol.RequestHeader, request *protocol.MyThumbUp
return
}
//我的评论
// 我的评论
func MyComment(header *protocol.RequestHeader, request *protocol.MyCommentRequest) (rsp *protocol.MyCommentResponse, err error) {
var (
ormItems []protocol.ChanceCommentItemOrm
... ... @@ -1979,7 +1979,7 @@ func MyComment(header *protocol.RequestHeader, request *protocol.MyCommentReques
return
}
//获取机会点赞/收藏状态
// 获取机会点赞/收藏状态
func getChanceMarkFlag(header *protocol.RequestHeader, chanceId int64) (isThumbsUp, isCollect bool, err error) {
var flag int
if flag, err = agg.GetChanceMarkData(header.UserId, header.CompanyId, chanceId); err != nil {
... ... @@ -1991,7 +1991,7 @@ func getChanceMarkFlag(header *protocol.RequestHeader, chanceId int64) (isThumbs
return
}
//获取机会点赞/收藏状态
// 获取机会点赞/收藏状态
func getMarkFlag(header *protocol.RequestHeader, sourceId int64, sourceType int) (isThumbsUp, isCollect bool, err error) {
var flag int
if flag, err = agg.GetMarkData(header.UserId, header.CompanyId, sourceId, sourceType); err != nil {
... ... @@ -2003,7 +2003,7 @@ func getMarkFlag(header *protocol.RequestHeader, sourceId int64, sourceType int)
return
}
//获取模板
// 获取模板
func getTemplate(templateId int) protocol.NameItem {
if template, e := models.GetAuditTemplateById(int64(templateId)); e == nil {
item := protocol.NameItem{
... ... @@ -2017,7 +2017,7 @@ func getTemplate(templateId int) protocol.NameItem {
return protocol.NameItem{}
}
//获取机会一级分类
// 获取机会一级分类
func getChanceType(chanceTypeId int) protocol.NameItem {
if template, e := models.GetChanceTypeById(chanceTypeId); e == nil {
item := protocol.NameItem{
... ... @@ -2040,7 +2040,7 @@ func jsonUnmarshal(jsonData string, v interface{}) {
}
}
//清楚未填写的表单数据
// 清楚未填写的表单数据
func clearEmptyForm(inputFormList []*protocol.Form) (FormList []*protocol.Form) {
if len(inputFormList) == 0 {
return
... ... @@ -2054,7 +2054,7 @@ func clearEmptyForm(inputFormList []*protocol.Form) (FormList []*protocol.Form)
return
}
//机会详情
// 机会详情
func ChanceDetail(header *protocol.RequestHeader, request *protocol.ChanceDetailRequest) (rsp *protocol.ChanceDetailResponse, err error) {
var (
chance *models.Chance
... ... @@ -2208,7 +2208,7 @@ func ChanceDraftDetail(header *protocol.RequestHeader, request *protocol.ChanceD
return
}
//机会删除
// 机会删除
func ChanceDelete(header *protocol.RequestHeader, request *protocol.ChanceDeleteRequest) (rsp *protocol.ChanceDeleteResponse, err error) {
var (
chance *models.Chance
... ... @@ -2260,7 +2260,7 @@ func ChanceDelete(header *protocol.RequestHeader, request *protocol.ChanceDelete
return
}
//用户机会权限
// 用户机会权限
func Permission(header *protocol.RequestHeader, request *protocol.PermissionRequest) (rsp *protocol.PermissionResponse, err error) {
var (
op *agg.OptionOpportunity
... ... @@ -2396,7 +2396,7 @@ func Permission(header *protocol.RequestHeader, request *protocol.PermissionRequ
return
}
//机会补充详情
// 机会补充详情
func ChanceReviseDetail(header *protocol.RequestHeader, request *protocol.ChanceReviseDetailRequest) (rsp *protocol.ChanceReviseDetailResponse, err error) {
var (
detail *models.ChanceReviseLog
... ... @@ -2427,7 +2427,7 @@ func ChanceReviseDetail(header *protocol.RequestHeader, request *protocol.Chance
return
}
//自查问题列表
// 自查问题列表
func CheckQuestions(header *protocol.RequestHeader, request *protocol.CheckQuestionsRequest) (rsp *protocol.CheckQuestionsResponse, err error) {
var ()
rsp = &protocol.CheckQuestionsResponse{}
... ... @@ -2458,7 +2458,7 @@ func CheckQuestions(header *protocol.RequestHeader, request *protocol.CheckQuest
return
}
//机会保存到草稿箱
// 机会保存到草稿箱
func DraftSaveChance(header *protocol.RequestHeader, request *protocol.DraftSaveChanceRequest) (rsp *protocol.DraftSaveChanceResponse, err error) {
var (
template *models.AuditTemplate
... ... @@ -2549,7 +2549,7 @@ func DraftSaveChance(header *protocol.RequestHeader, request *protocol.DraftSave
return
}
//草稿删除(清空)
// 草稿删除(清空)
func DraftDelete(header *protocol.RequestHeader, request *protocol.DraftDeleteRequest) (rsp *protocol.DraftDeleteResponse, err error) {
var (
sql string
... ... @@ -2567,7 +2567,7 @@ func DraftDelete(header *protocol.RequestHeader, request *protocol.DraftDeleteRe
return
}
//草稿箱-机会列表
// 草稿箱-机会列表
func DraftByChance(header *protocol.RequestHeader, request *protocol.DraftByChanceRequest) (rsp *protocol.DraftByChanceResponse, err error) {
var (
ormItems []protocol.DraftChanceItemOrm
... ... @@ -2608,7 +2608,7 @@ func DraftByChance(header *protocol.RequestHeader, request *protocol.DraftByChan
return
}
//获取最新的表单列表
// 获取最新的表单列表
func GetNewestFormList(header *protocol.RequestHeader, chanceType, tpId int, old []*protocol.Form) []*protocol.Form {
var (
new []*protocol.Form
... ... @@ -2634,7 +2634,7 @@ func getNewestFormList(new []*protocol.Form, old []*protocol.Form) []*protocol.F
return new
}
//获取最新的自查列表
// 获取最新的自查列表
func GetNewestCheckQuestions(tpId int64, old []protocol.SelfCheck) []*protocol.CheckQuestion {
var rsp = []*protocol.CheckQuestion{}
if questions, err := agg.GetCheckQuestionsByTemplateId(tpId); err != nil {
... ...