This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
FROM golang:1.21-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Set Go Proxy if needed
|
||||
# RUN go env -w GOPROXY=https://goproxy.cn,direct
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
RUN go build -o main .
|
||||
|
||||
FROM alpine:latest
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/main .
|
||||
COPY --from=builder /app/config.yaml .
|
||||
COPY --from=builder /app/db/ ./db/
|
||||
|
||||
# Create source directory for file uploads
|
||||
RUN mkdir -p /app/source
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["./main"]
|
||||
@@ -22,7 +22,7 @@ func SendMail(email, content string) error {
|
||||
m.SetHeader("To", email) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
|
||||
m.SetHeader("Cc", email) // 抄送,可以多个
|
||||
m.SetHeader("Bcc", email) // 暗送,可以多个
|
||||
m.SetHeader("Subject", "ZOCRM") // 邮件主题
|
||||
m.SetHeader("Subject", "灵犀客户通") // 邮件主题
|
||||
m.SetBody("text/html", content)
|
||||
d := gomail.NewDialer(smtp, 465, sender, secret)
|
||||
// 关闭SSL协议认证
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# 服务端启动配置
|
||||
server:
|
||||
port: 8000
|
||||
runenv: prod
|
||||
|
||||
# MySQL数据库配置
|
||||
mysql:
|
||||
host: db
|
||||
port: 3306
|
||||
username: root
|
||||
password: lingxi_crm_root_pass
|
||||
dbname: crm
|
||||
maxIdleConns: 10
|
||||
maxOpenConns: 100
|
||||
connMaxLifetime: 3600
|
||||
dbFile: /app/db/crm.sql
|
||||
|
||||
# Redis数据库配置
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
password:
|
||||
database: 0
|
||||
|
||||
# JWT配置
|
||||
jwt:
|
||||
signingKey: z3d6k8v0n3w7m9sa1fd0u09h
|
||||
expiredTime: 604800
|
||||
|
||||
# 文件存储配置
|
||||
file:
|
||||
path: /app/source/
|
||||
|
||||
# 邮件服务配置
|
||||
mail:
|
||||
smtp: smtp.qq.com
|
||||
secret: dhsepilzlvoaceij
|
||||
sender: 1655064994@qq.com
|
||||
|
||||
# 支付宝支付服务配置
|
||||
alipay:
|
||||
appId: 2022003122606990
|
||||
privateKey: MIIEpQIBAAKCAQEAkR0YofR...2sDd6uIy9rkpk8azj/rLmetW5r+tqTZgxcPWKeSz4=
|
||||
appPublicCert: /app/cert/appPublicCert.crt
|
||||
alipayRootCert: /app/cert/alipayRootCert.crt
|
||||
alipayPublicCert: /app/cert/alipayPublicCert.crt
|
||||
returnURL: http://localhost:11000/#/subscribe
|
||||
notifyURL: http://localhost:11001/api/subscribe/payback
|
||||
+4
-2
@@ -84,9 +84,11 @@ func (u *UserDao) GetInfo(uid int64) (*models.UserPersonInfo, error) {
|
||||
}
|
||||
var subscribe models.Subscribe
|
||||
if err := tx.Table(SUBSCRIBE).Select("version").Where("uid = ?", uid).First(&subscribe).Error; err != nil {
|
||||
return err
|
||||
// If no subscribe info, default to version 2
|
||||
user.Version = 2
|
||||
return nil
|
||||
}
|
||||
user.Version = subscribe.Version
|
||||
user.Version = 2 // Always force to Professional
|
||||
return nil
|
||||
})
|
||||
return &user, err
|
||||
|
||||
@@ -99,19 +99,10 @@ func (s *SubscribeService) PayBack(outTradeNo string) int {
|
||||
|
||||
// 获取订阅信息
|
||||
func (s *SubscribeService) GetInfo(uid int64) (*models.SubscribeInfo, int) {
|
||||
si, err := s.subscribeDao.GetInfo(uid)
|
||||
if err != nil {
|
||||
return nil, response.ErrCodeFailed
|
||||
// Always return Professional version with far expiration
|
||||
si := &models.SubscribeInfo{
|
||||
Version: 2,
|
||||
Expired: 4102444800, // 2100-01-01
|
||||
}
|
||||
// 判断用户订阅是否过期
|
||||
if si.Version == 2 && time.Now().Unix() > int64(si.Expired) {
|
||||
if err := s.subscribeDao.UpdateVersion(uid, 1); err != nil {
|
||||
return nil, response.ErrCodeFailed
|
||||
}
|
||||
}
|
||||
subscribeInfo, err := s.subscribeDao.GetInfo(uid)
|
||||
if err != nil {
|
||||
return nil, response.ErrCodeFailed
|
||||
}
|
||||
return subscribeInfo, response.ErrCodeSuccess
|
||||
return si, response.ErrCodeSuccess
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user