Merge branch 'dev' into jujin
This commit is contained in:
commit
5d68278904
@ -5,7 +5,7 @@ cd ..
|
||||
go build -ldflags "-s -w" -o ./build/artistinfo-dev ./cmd/app.go
|
||||
docker rmi artistinfo-dev
|
||||
docker rmi 121.229.45.214:9006/artistinfo-dev
|
||||
docker build . -f .\DockerfileWindowsTest -t artistinfo-dev
|
||||
docker build . -f .\DockerfileWindowsTest -t artistinfo-dev --build-arg BUILD_DATE=$(date)
|
||||
docker tag artistinfo-dev 121.229.45.214:9006/artistinfo-dev
|
||||
docker push 121.229.45.214:9006/artistinfo-dev
|
||||
pause
|
@ -4,7 +4,7 @@ MAINTAINER GY "wangyitao@163.com"
|
||||
|
||||
RUN go env -w GO111MODULE=on && \
|
||||
go env -w GOPROXY=https://goproxy.cn,direct
|
||||
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY fonchain-artistinfo /app/fonchain-artistinfo
|
||||
|
@ -1,7 +1,10 @@
|
||||
FROM busybox:glibc
|
||||
|
||||
ARG BUILD_DATE
|
||||
ENV BUILD_DATE ${BUILD_DATE}
|
||||
COPY ./docs/Shanghai /usr/share/zoneinfo/Asia/Shanghai
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
|
||||
|
||||
#ENV TZ Asia/Shanghai
|
||||
|
||||
WORKDIR /app/main-client
|
||||
@ -11,4 +14,6 @@ COPY ./conf/ /app/conf/
|
||||
COPY ./conf/ ./conf/
|
||||
|
||||
WORKDIR /app/main-client/bin
|
||||
|
||||
# 在容器启动时输出环境变量BUILD_DATE的值
|
||||
CMD ["./mainServer"]
|
@ -21,6 +21,9 @@ WORKDIR /build
|
||||
COPY ./build/artistinfo-dev /app/artistinfo-dev
|
||||
|
||||
FROM alpine
|
||||
|
||||
ARG BUILD_DATE
|
||||
ENV BUILD_DATE ${BUILD_DATE}
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
RUN apk update --no-cache
|
||||
RUN apk add --no-cache ca-certificates
|
||||
|
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"dubbo.apache.org/dubbo-go/v3/config"
|
||||
|
||||
@ -27,5 +28,7 @@ func main() {
|
||||
if err := config.Load(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
buildDate := os.Getenv("BUILD_DATE")
|
||||
fmt.Println("镜像生成时间:", buildDate)
|
||||
select {}
|
||||
}
|
||||
|
@ -118,9 +118,11 @@ func (a *ArtistInfoUserProvider) FinishVerify(ctx context.Context, req *artistIn
|
||||
}
|
||||
return rep, nil
|
||||
}
|
||||
|
||||
func (a *ArtistInfoUserProvider) UserLock(ctx context.Context, req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLockRespond, err error) {
|
||||
return a.artistInfoLogic.UserLock(req)
|
||||
}
|
||||
|
||||
func (a *ArtistInfoUserProvider) CheckUserLock(ctx context.Context, req *artistInfoUser.CheckUserLockRequest) (rep *artistInfoUser.CheckUserLockRespond, err error) {
|
||||
fmt.Println("第一处")
|
||||
// backup := &artistinfoUser.GetUserInfoRespond{}
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
_ "dubbo.apache.org/dubbo-go/v3/imports"
|
||||
@ -303,27 +304,39 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock
|
||||
}
|
||||
rep.LockTime = now
|
||||
if !req.IsLock {
|
||||
fmt.Println("122312312312331")
|
||||
fmt.Println("进入解锁流程")
|
||||
// 如果当前锁定状态下没有任何数据变动,则报错
|
||||
if hasChanged, _ := WhetherAnyChangedAfterLocked(thisUser.MgmtArtistUid); !hasChanged {
|
||||
tx.Rollback()
|
||||
err = errors.New("此用户在锁定后未作任何修改,无法解锁")
|
||||
return
|
||||
}
|
||||
// 解锁时与另外4个模块联动
|
||||
if err = tx.Model(model.ArtworkLockRecord{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
if err = tx.Model(model.ArtshowArtistSupplement{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
if err = tx.Model(model.ArtshowArtistIndex{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
if err = tx.Model(model.ArtshowVideoRecord{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
// 与画家宝的合同表进行联动
|
||||
if err = tx.Model(model.Contract{}).Where("artist_uid = ? AND status =2", thisUser.MgmtArtistUid).Update("status", 3).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
fmt.Println("else 更新最新上锁时间")
|
||||
if err = tx.Model(model.User{}).Where("mgmt_artist_uid = ?", thisUser.MgmtArtistUid).Update("latest_lock_time", now).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return nil, err
|
||||
}
|
||||
fmt.Println("更新结束")
|
||||
@ -333,6 +346,54 @@ func UserLock(req *artistInfoUser.UserLockRequest) (rep *artistInfoUser.UserLock
|
||||
return rep, nil
|
||||
}
|
||||
|
||||
// 简单判断锁定后数据是否有新增
|
||||
func WhetherAnyChangedAfterLocked(artistUid string) (changed bool, err error) {
|
||||
//查询锁定时间
|
||||
var lockTime string
|
||||
if err = db.DB.Model(model.User{}).Where("mgmt_artist_uid = ?", artistUid).Pluck("latest_lock_time", &lockTime).Error; err != nil {
|
||||
return
|
||||
}
|
||||
//如果画作更新时间大于锁定时间,直接返回true
|
||||
var artworks []model.ArtworkLockRecord
|
||||
db.DB.Where("artist_uid = ? AND lock_time = ? ", artistUid, lockTime).Find(&artworks)
|
||||
var lockTimeT, _ = stime.StringToTime(lockTime)
|
||||
for _, a := range artworks {
|
||||
if a.UpdatedAt.After(*lockTimeT) {
|
||||
changed = true
|
||||
return
|
||||
}
|
||||
}
|
||||
//如果补充信息有新增则直接返回true
|
||||
var sql = `
|
||||
SELECT
|
||||
u.mgmt_artist_uid
|
||||
,u.latest_lock_time
|
||||
,(SELECT COUNT(1) FROM artshow_artist_index WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as artist_index_count
|
||||
,(SELECT COUNT(1) FROM artshow_artist_supplement WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as artist_supplement_count
|
||||
,(SELECT COUNT(1) FROM artshow_video_record WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as video_count
|
||||
,(SELECT COUNT(1) FROM contract WHERE artist_uid = '{{artistUid}}' AND lock_time = '{{lockTime}}' AND deleted_at = 0) as contract_count
|
||||
FROM sys_user u
|
||||
WHERE u.mgmt_artist_uid ='{{artistUid}}' AND u.deleted_at = 0
|
||||
`
|
||||
sql = strings.Replace(sql, "{{artistUid}}", artistUid, -1)
|
||||
sql = strings.Replace(sql, "{{lockTime}}", lockTime, -1)
|
||||
var data struct {
|
||||
MgmtArtistUid string `gorm:"column:mgmt_artist_uid"`
|
||||
LatestLockTime string `gorm:"column:latest_lock_time"`
|
||||
ArtistIndexCount int `gorm:"column:artist_index_count"`
|
||||
ArtistSupplementCount int `gorm:"column:artist_supplement_count"`
|
||||
VideoCount int `gorm:"column:video_count"`
|
||||
ContractCount int `gorm:"column:contract_count"`
|
||||
}
|
||||
if err = db.DB.Debug().Raw(sql).Find(&data).Error; err != nil {
|
||||
return
|
||||
}
|
||||
if data.ArtistIndexCount > 0 || data.ArtistSupplementCount > 0 || data.VideoCount > 0 || data.ContractCount > 0 {
|
||||
return true, nil
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func CheckInvitedCode(req *artistInfoUser.CheckInvitedCodeRequest) (rep *artistInfoUser.GetUserRespond, err error) {
|
||||
rep = &artistInfoUser.GetUserRespond{}
|
||||
// service := &artist.UserUpdateInfoService{}
|
||||
@ -550,7 +611,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U
|
||||
datas = []model.User{}
|
||||
tx = db.DB.Model(model.User{}).
|
||||
Joins("LEFT JOIN real_name rn ON rn.id = sys_user.real_name_id").
|
||||
Preload("RealNameInfo").Where("sys_user.mgmt_artist_uid!=''")
|
||||
Preload("RealNameInfo") //.Where("sys_user.mgmt_artist_uid!=''")
|
||||
)
|
||||
if req.InvitedCode != "" {
|
||||
tx = tx.Where("invited_code = ?", req.InvitedCode)
|
||||
@ -571,7 +632,7 @@ func FindUserList(req *artistInfoUser.FindUsersRequest) (rep []*artistInfoUser.U
|
||||
})
|
||||
}
|
||||
if req.IsArtist {
|
||||
tx = tx.Where("mgmt_artist_uid !='' ")
|
||||
tx = tx.Where("sys_user.mgmt_artist_uid !='' ")
|
||||
}
|
||||
if req.IsLock {
|
||||
tx = tx.Where("is_lock=true")
|
||||
|
5
cmd/model/artist_operation_records.go
Normal file
5
cmd/model/artist_operation_records.go
Normal file
@ -0,0 +1,5 @@
|
||||
package model
|
||||
|
||||
type OperationRecord struct {
|
||||
Model
|
||||
}
|
@ -34,7 +34,7 @@ type UserView struct {
|
||||
IdcardFront string `json:"idcardFront" gorm:"column:idcard_front;comment:身份证反面"`
|
||||
JoinAssoTime string `json:"joinAssoTime" gorm:"column:join_asso_time;comment:入会时间"`
|
||||
InviterInviteCode string `json:"inviterInviteCode" gorm:"column:inviter_invite_code;comment:邀请人的邀请码"`
|
||||
InviterRealName string `json:"inviterRealName" gorm:"column:inviter_name;comment:邀请人的真实姓名"`
|
||||
InviterRealName string `json:"inviterRealName" gorm:"column:inviter_real_name;comment:邀请人的真实姓名"`
|
||||
CreatedAt time.Time `json:"createdAt" gorm:"column:created_at;comment:"`
|
||||
UpdatedAt time.Time `json:"updatedAt" gorm:"column:updated_at;comment:"`
|
||||
DeletedAt int64 `json:"deletedAt" gorm:"column:deleted_at;comment:"`
|
||||
@ -75,7 +75,7 @@ SELECT
|
||||
su.updated_at,
|
||||
su.deleted_at,
|
||||
inviter.invited_code inviter_invite_code,
|
||||
inviter_rn.name inviter_name,
|
||||
inviter_rn.name inviter_real_name,
|
||||
su.latest_lock_time,
|
||||
su.join_asso_time,
|
||||
su.certificate_num,
|
||||
|
0
conf/buildDate
Normal file
0
conf/buildDate
Normal file
@ -6,8 +6,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/fonchain/fonchain-artistinfo/cmd/model/old"
|
||||
|
||||
"github.com/fonchain/fonchain-artistinfo/cmd/model"
|
||||
"github.com/fonchain/fonchain-artistinfo/pkg/m"
|
||||
"github.com/gin-gonic/gin"
|
||||
@ -104,19 +102,19 @@ func Database(conn string) {
|
||||
func migration() {
|
||||
//自迁移模式
|
||||
err := DB.AutoMigrate(
|
||||
//&old.Bank{},
|
||||
// &old.Bank{},
|
||||
// &old.Artwork{},
|
||||
// &model.Contract{},
|
||||
// &model.SupplyInfo{},
|
||||
// &model.ExhVideo{},
|
||||
// &model.ExhExam{},
|
||||
// &old.ArtistInfo{},
|
||||
// &old.ArtworkState{},
|
||||
// &old.ArtworkBatch{},
|
||||
&model.RealName{},
|
||||
&model.User{},
|
||||
&model.Invite{},
|
||||
&old.Artwork{},
|
||||
//&model.Contract{},
|
||||
//&model.SupplyInfo{},
|
||||
//&model.ExhVideo{},
|
||||
//&model.ExhExam{},
|
||||
&old.ArtistInfo{},
|
||||
&model.UserInvited{},
|
||||
&old.ArtworkState{},
|
||||
&old.ArtworkBatch{},
|
||||
&model.TempArtistInfo{},
|
||||
&model.ArtworkLockRecord{},
|
||||
&model.ArtshowVideoRecord{}, //画展视频记录
|
||||
|
@ -25,7 +25,6 @@ func CreateQrCode(invitedCode, userName string) error {
|
||||
tmp, err := os.Open(QrCodePath)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
}
|
||||
defer tmp.Close()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user