main
耿阳 2 years ago
parent dac4e08e67
commit 4c68923ae0

@ -16,6 +16,7 @@ RUN go build -o /app/fonchain-approval/bin/approval cmd/app.go
FROM alpine FROM alpine
RUN apk update --no-cache && apk add --no-cache ca-certificates tzdata
ENV TZ Asia/Shanghai ENV TZ Asia/Shanghai
WORKDIR /app/approval WORKDIR /app/approval
#通过名称引用 #通过名称引用

File diff suppressed because it is too large Load Diff

@ -140,6 +140,7 @@ message StatusRequest {
uint64 WorkFlowId = 4 [json_name = "workFlowId"]; uint64 WorkFlowId = 4 [json_name = "workFlowId"];
uint64 Status = 5 [json_name = "status",(validator.field) = {int_lt: 4,int_gt: 0,human_error: "70008"}]; uint64 Status = 5 [json_name = "status",(validator.field) = {int_lt: 4,int_gt: 0,human_error: "70008"}];
uint64 Level = 6 [json_name = "level"]; uint64 Level = 6 [json_name = "level"];
string Title = 7 [json_name = "title"];
} }
message StatusResponse { message StatusResponse {
@ -232,6 +233,8 @@ message ApprovalExhibition {
string PackageNumber =7 [json_name = "packageNumber"]; string PackageNumber =7 [json_name = "packageNumber"];
string Address =8 [json_name = "address"]; string Address =8 [json_name = "address"];
string ShowDate =9 [json_name = "showDate"]; string ShowDate =9 [json_name = "showDate"];
repeated Artwork Artworks = 10[json_name = "artworks"];
ArtExhibitionDetail ArtExhibitionDetail = 11[json_name = "artExhibitionDetail"];
} }
message Exhibition { message Exhibition {
@ -240,8 +243,37 @@ message Exhibition {
string Address =3 [json_name = "address"]; string Address =3 [json_name = "address"];
uint64 PidApprovalID =4 [json_name = "pidApprovalID"]; uint64 PidApprovalID =4 [json_name = "pidApprovalID"];
repeated ApprovalExhibition ApprovalExhibitions = 5 [json_name = "approvalExhibitions"]; repeated ApprovalExhibition ApprovalExhibitions = 5 [json_name = "approvalExhibitions"];
uint64 Num = 6 [json_name = "num"]; uint64 Num = 6 [json_name = "num"];
string ApplyID = 7 [json_name = "applyID"]; string ApplyID = 7 [json_name = "applyID"];
}
message Artwork {
string ArtworkPriceUID =1;
string ShowUID =2;
string ArtworkUID =3;
string ArtworkName =4;
string ArtistName =5;
uint64 Length =6;
uint64 Width =7;
uint64 Ruler =8;
string SmallPic =9;
}
message ArtExhibitionDetail {
string ShowUID = 1 ;
string ShowSeq = 2 ;
string ShowName = 3 ;
string ArtistName = 4 ;
string ArtistUID = 5 ;
uint64 ArtworkNum = 6 ;
uint64 Ruler = 7 ;
uint64 Price = 8 ;
uint64 Reward = 9 ;
string CreateTime = 10 ;
string Operator = 11 ;
uint64 IsShow = 12 ;
string ShowTime = 13;
string Address = 14 ;
} }
message BundlePayPrice { message BundlePayPrice {
@ -255,7 +287,8 @@ message BundlePayPrice {
string ArtworkSize = 8 [json_name = "artworkSize"]; string ArtworkSize = 8 [json_name = "artworkSize"];
string ShowAddress = 9 [json_name = "showAddress"]; string ShowAddress = 9 [json_name = "showAddress"];
uint64 ID = 10 [json_name = "ID"]; uint64 ID = 10 [json_name = "ID"];
uint64 Status = 11 [json_name = "Status"]; uint64 Status = 11 [json_name = "status"];
string ArtistName = 12 [json_name = "artistName"];
} }
message CreateRequest { message CreateRequest {

@ -170,6 +170,18 @@ func (this *Work) Validate() error {
return nil return nil
} }
func (this *ApprovalExhibition) Validate() error { func (this *ApprovalExhibition) Validate() error {
for _, item := range this.Artworks {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Artworks", err)
}
}
}
if this.ArtExhibitionDetail != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.ArtExhibitionDetail); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("ArtExhibitionDetail", err)
}
}
return nil return nil
} }
func (this *Exhibition) Validate() error { func (this *Exhibition) Validate() error {
@ -182,6 +194,12 @@ func (this *Exhibition) Validate() error {
} }
return nil return nil
} }
func (this *Artwork) Validate() error {
return nil
}
func (this *ArtExhibitionDetail) Validate() error {
return nil
}
func (this *BundlePayPrice) Validate() error { func (this *BundlePayPrice) Validate() error {
return nil return nil
} }

@ -9,6 +9,7 @@ import (
"github.com/fonchain_enterprise/fonchain-approval/pkg/common/page" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/page"
msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m" msg "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/clause"
"gorm.io/plugin/soft_delete" "gorm.io/plugin/soft_delete"
"time" "time"
) )
@ -63,12 +64,13 @@ func (j KeyInfos) Value() (driver.Value, error) {
} }
const ( const (
TypeContent = "content" TypeContent = "content"
TypeWork = "work" TypeWork = "work"
TypeExhibition = "exhibition" TypeExhibition = "exhibition"
TypeShow = "show" TypeShow = "show"
TypeBundle = "bundle" TypeBundle = "bundle"
TypeBundlePayPrice = "bundlePayPrice" TypeBundlePayPrice = "bundlePayPrice"
TypeArtExhibitionReward = "artExhibitionReward"
) )
const ( const (
StatusDoing = 1 StatusDoing = 1
@ -172,7 +174,7 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
fmt.Println("1-----", terr, setting) fmt.Println("1-----", terr, setting)
if terr != nil || setting == nil { if terr != nil || setting == nil {
return errors.New("抄送人没有配置") return errors.New("审批人员没有配置")
} }
approvalUsers := setting.GetCombineApproveUsers(FormatApproveUsers(in.ApprovalUsers)) approvalUsers := setting.GetCombineApproveUsers(FormatApproveUsers(in.ApprovalUsers))
@ -213,7 +215,11 @@ func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
} }
fmt.Println(5) fmt.Println(5)
return BatchSave(approvalUsers, entity.ID) err = BatchSave(approvalUsers, entity.ID)
if err != nil {
return err
}
return BatchCopySave(setting.CopyUsers, entity.ID)
}) })
//fmt.Println("nil", entity) //fmt.Println("nil", entity)
@ -254,8 +260,14 @@ func Viewed(in *approval.ViewedRequest) error {
if isView == false { if isView == false {
return errors.New(msg.ErrorSettingView) return errors.New(msg.ErrorSettingView)
} }
err = DB.Model(&Approval{}).Where(&Approval{ID: in.ID}).Updates(&Approval{CopyUsers: copyUsers}).Error
if err != nil {
return err
}
return DB.Model(&Approval{}).Where(&Approval{ID: in.ID}).Updates(&Approval{CopyUsers: copyUsers}).Error DB.Model(&ApprovalCopy{}).Where(&ApprovalCopy{ApprovalID: in.ID, UserId: in.UserID}).Updates(&ApprovalCopy{Status: StatusOk})
return err
} }
@ -328,7 +340,7 @@ func approvalCalc(filter *Approval) *approval.Information {
func approvalCalcJsonV2(domain string, userId uint64) *approval.Information { func approvalCalcJsonV2(domain string, userId uint64) *approval.Information {
var num int64 var num int64
var jsonStr = "json_contains(approval_users,json_object('id', ?))" var jsonStr = "json_contains(approval_users,json_object('ID', ?))"
info := &approval.Information{ info := &approval.Information{
Total: 0, Total: 0,
@ -456,6 +468,101 @@ func (m *Approval) UpdateContent(in *approval.CreateRequest) error {
return err return err
} }
//MyAllWorkApprovals 待阅读的和待我操作的
func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
var list []*Approval
var ids []string
var count int64
//list
modelObj := DB.Model(&Approval{}).
Preload("Show").
Preload("Work.ApprovalWorks").
Preload("Bundle").
Preload("ApprovalType").
Preload("BundlePayPrice").
Preload("ApprovalType.ApprovalTypeGroup").
Preload("ApprovalWorkFlows").
Preload("Exhibition.ApprovalExhibitions")
//我未阅读的和我未操作的
DB.Model(&Approval{}).Where(&Approval{Type: in.Type}).Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}).Order("id desc").Select("id").Find(&ids)
s1 := DB.Model(&ApprovalCopy{}).Where(&ApprovalCopy{UserId: in.UserID}).Select("approval_id")
modelObj = modelObj.Where(&Approval{Type: in.Type}).Where(
DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的
Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的
modelObj.Count(&count)
if len(ids) > 0 { //根据具体id排序
modelObj = modelObj.Clauses(clause.OrderBy{
Expression: clause.Expr{SQL: "FIELD(id,?) desc", Vars: []interface{}{ids}, WithoutParentheses: true},
})
} else {
modelObj = modelObj.Order("id desc")
}
modelObj.Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
return list, count
}
func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
var list []*Approval
var count int64
//list
modelObj := DB.Model(&Approval{}).
Preload("Show").
Preload("Work.ApprovalWorks").
Preload("Bundle").
Preload("ApprovalType").
Preload("BundlePayPrice").
Preload("ApprovalType.ApprovalTypeGroup").
Preload("ApprovalWorkFlows").
Preload("Exhibition.ApprovalExhibitions")
if in.Type != "" {
modelObj = modelObj.Where(&Approval{Type: in.Type})
}
/**
* ()
/ \
/ \
*/
if in.UserID != 0 {
modelObj = modelObj.Where(
DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID).
Where("status != ?", StatusDoing). //完成,我参与审批
Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我,
Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送)
}
if in.ApprovedBossId != 0 {
fmt.Println("---------1--------查看我已经审批过的")
subQuery2 := DB.Model(&ApprovalWorkFlow{}).
Where("status in (?)", []uint8{StatusOk, StatusFail}).
Where(&ApprovalWorkFlow{UserId: in.ApprovedBossId}).
Select("approval_id")
modelObj = modelObj.Where("id in (?)", subQuery2)
}
if in.Status != 0 {
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
}
modelObj.Count(&count)
modelObj.Order("id desc").Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
return list, count
}
func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) { func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
var list []*Approval var list []*Approval
var count int64 var count int64
@ -465,6 +572,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("Show"). Preload("Show").
Preload("Work.ApprovalWorks"). Preload("Work.ApprovalWorks").
Preload("Bundle"). Preload("Bundle").
Preload("ApprovalType").
Preload("BundlePayPrice").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("ApprovalWorkFlows"). Preload("ApprovalWorkFlows").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions")
@ -505,7 +614,7 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
modelObj.Count(&count) modelObj.Count(&count)
modelObj.Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Order("id desc").Find(&list) modelObj.Order("id desc").Limit(int(in.PageSize)).Offset(page.GetOffset(in.Page, in.PageSize)).Find(&list)
return list, count return list, count
} }
@ -519,6 +628,7 @@ func MySubmitApprovals(in *approval.ListRequest) ([]*Approval, int64) {
Preload("Show"). Preload("Show").
Preload("Work.ApprovalWorks"). Preload("Work.ApprovalWorks").
Preload("Bundle"). Preload("Bundle").
Preload("BundlePayPrice").
Preload("ApprovalWorkFlows"). Preload("ApprovalWorkFlows").
Preload("ApprovalType.ApprovalTypeGroup"). Preload("ApprovalType.ApprovalTypeGroup").
Preload("Exhibition.ApprovalExhibitions") Preload("Exhibition.ApprovalExhibitions")

@ -0,0 +1,44 @@
package model
import (
"gorm.io/plugin/soft_delete"
"time"
)
// ApprovalCopy 审批流
type ApprovalCopy struct {
ID uint64 `gorm:"primaryKey;column:id" json:"id"`
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"`
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
ApprovalID uint64 `gorm:"type:int(11);column:approval_id;default:1;comment:绑定的审批id" json:"approvalID"`
UserId uint64 `gorm:"type:int(11);column:user_id;default:1;comment:绑定的人员id" json:"userId"`
Name string `gorm:"type:varchar(50);column:name;default:'';comment:绑定的人名称" json:"name"`
Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"`
}
func BatchCopySave(users CopyUsers, approvalId uint64) error {
var insertRaws []*ApprovalCopy
if users == nil && len(users) == 0 {
return nil
}
for _, user := range users {
temp := &ApprovalCopy{
UserId: user.ID,
Name: user.Name,
ApprovalID: approvalId,
Status: StatusDoing,
}
insertRaws = append(insertRaws, temp)
}
return DB.Create(&insertRaws).Error
}
func (m *ApprovalCopy) TableName() string {
return "approval_copy"
}

@ -1,27 +1,82 @@
package model package model
import ( import (
"database/sql/driver"
"encoding/json"
"gorm.io/plugin/soft_delete" "gorm.io/plugin/soft_delete"
"time" "time"
) )
type ArtExhibitionDetail struct {
ShowUID string
ShowSeq string
ShowName string
ArtistName string
ArtistUID string
ArtworkNum uint64
Ruler uint64
Price uint64
Reward uint64
CreateTime string
Operator string
IsShow uint64
ShowTime string
Address string
}
type Artwork struct {
ArtworkPriceUID string
ShowUID string
ArtworkUID string
ArtworkName string
ArtistName string
Length uint64
Width uint64
Ruler uint64
SmallPic string
}
type Artworks []Artwork
// ApprovalExhibition 绑定的画展包 // ApprovalExhibition 绑定的画展包
type ApprovalExhibition struct { type ApprovalExhibition struct {
ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID ID uint64 `gorm:"primaryKey;column:id" json:"id"` // ID
DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间
ApprovalID uint64 `gorm:"column:approval_id" json:"approvalId"` // 申请的id ApprovalID uint64 `gorm:"column:approval_id" json:"approvalId"` // 申请的id
ExhibitionID uint64 `gorm:"column:exhibition_id" json:"exhibitionId"` // 画展包的id ExhibitionID uint64 `gorm:"column:exhibition_id" json:"exhibitionId"` // 画展包的id
PackageName string `gorm:"column:package_name" json:"PackageName"` // 作品名称 PackageName string `gorm:"column:package_name" json:"PackageName"` // 作品名称
PackageID string `gorm:"size:64;column:package_id;default:''" json:"packageID"` // 作品类型id PackageID string `gorm:"size:64;column:package_id;default:''" json:"packageID"` // 作品类型id
PackageSize uint64 `gorm:"column:package_size" json:"PackageSize"` // 平尺数 PackageSize uint64 `gorm:"column:package_size" json:"PackageSize"` // 平尺数
PackageNumber string `gorm:"column:package_number" json:"packageNumber"` // 序号 PackageNumber string `gorm:"column:package_number" json:"packageNumber"` // 序号
Address string `gorm:"column:address" json:"Address"` // 地点 Address string `gorm:"column:address" json:"Address"` // 地点
ShowDate string `gorm:"type:varchar(10);default:'';column:show_date" json:"ShowDate"` // 位置 ShowDate string `gorm:"type:varchar(10);default:'';column:show_date" json:"ShowDate"` // 位置
ArtExhibitionDetail ArtExhibitionDetail `gorm:"type:text;column:art_exhibition_detail;comment:绑定的画展包" json:"artExhibitionDetail"`
Artworks Artworks `gorm:"type:text;column:artworks;comment:画作" json:"artworks"`
} }
// TableName get sql table name.获取数据库表名 // TableName get sql table name.获取数据库表名
func (m *ApprovalExhibition) TableName() string { func (m *ApprovalExhibition) TableName() string {
return "approval_exhibition" return "approval_exhibition"
} }
func (j Artworks) Scan(src interface{}) error {
return json.Unmarshal(src.([]byte), j)
}
func (j Artworks) Value() (driver.Value, error) {
v, err := json.Marshal(j)
return string(v), err
}
func (j ArtExhibitionDetail) Scan(src interface{}) error {
return json.Unmarshal(src.([]byte), j)
}
func (j ArtExhibitionDetail) Value() (driver.Value, error) {
v, err := json.Marshal(j)
return string(v), err
}

@ -73,13 +73,20 @@ func GetApprovalSettingFromKeyWord(Domain, keyWord string) (setting *ApprovalSet
func FormatCopyUsers(copyUsers []*approval.CopyUser) CopyUsers { func FormatCopyUsers(copyUsers []*approval.CopyUser) CopyUsers {
var res CopyUsers var res CopyUsers
copyMap := make(map[uint64]struct{})
// copyer // copyer
for _, copyUser := range copyUsers { for _, copyUser := range copyUsers {
if _, ok := copyMap[copyUser.ID]; ok { //存在
continue
}
temp := CopyUser{ temp := CopyUser{
ID: copyUser.ID, ID: copyUser.ID,
Name: copyUser.Name, Name: copyUser.Name,
} }
res = append(res, temp) res = append(res, temp)
} }

@ -46,6 +46,7 @@ var keyWordMap = map[string]string{
"画展包数量审批": "bundle", "画展包数量审批": "bundle",
"画展审批": "show", "画展审批": "show",
"画展包付款单申请": TypeBundlePayPrice, "画展包付款单申请": TypeBundlePayPrice,
"画作润格审批": TypeArtExhibitionReward,
} }
func DataExist(domain, keyWork, title string) bool { func DataExist(domain, keyWork, title string) bool {

@ -22,7 +22,8 @@ type BundlePayPrice struct {
ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"` ShowLowPrice string `gorm:"type:varchar(32);column:show_low_price;default:'';comment:画展宝低价" json:"showLowPrice"`
ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"` ArtworkNum uint64 `gorm:"type:int(11);column:artworkNum;default:0;comment:作品数量" json:"artworkNum"`
ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"` ArtworkSize string `gorm:"type:varchar(32);column:artwork_size;default:'';comment:作品总平尺" json:"artworkSize"`
ShowAddress string `gorm:"type:varchar(32);column:show_address;default:'';comment:画展地址" json:"showAddress"` ShowAddress string `gorm:"type:varchar(50);column:show_address;default:'';comment:画展地址" json:"showAddress"`
ArtistName string `gorm:"type:varchar(50);column:artist_name;default:'';comment:画家名称" json:"artistName"`
Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"` Status uint64 `gorm:"type:int(11);column:status;default:1;comment:状态" json:"status"`
} }
@ -42,6 +43,7 @@ func (m *BundlePayPrice) SaveApprovalContent(in *approval.CreateRequest, a *Appr
m.ArtworkNum = in.BundlePayPrice.ArtworkNum m.ArtworkNum = in.BundlePayPrice.ArtworkNum
m.ArtworkSize = in.BundlePayPrice.ArtworkSize m.ArtworkSize = in.BundlePayPrice.ArtworkSize
m.ShowAddress = in.BundlePayPrice.ShowAddress m.ShowAddress = in.BundlePayPrice.ShowAddress
m.ArtistName = in.BundlePayPrice.ArtistName
return DB.Create(&m).Error return DB.Create(&m).Error
} }
@ -63,6 +65,7 @@ func (m *BundlePayPrice) UpdateApprovalContent(in *approval.CreateRequest, a *Ap
m.ArtworkNum = in.BundlePayPrice.ArtworkNum m.ArtworkNum = in.BundlePayPrice.ArtworkNum
m.ArtworkSize = in.BundlePayPrice.ArtworkSize m.ArtworkSize = in.BundlePayPrice.ArtworkSize
m.ShowAddress = in.BundlePayPrice.ShowAddress m.ShowAddress = in.BundlePayPrice.ShowAddress
m.ArtistName = in.BundlePayPrice.ArtistName
return DB.Model(&m).Updates(m).Error return DB.Model(&m).Updates(m).Error
} }
@ -81,6 +84,7 @@ func (m *BundlePayPrice) BuildResContent(a *Approval, request *approval.CreateRe
ArtworkSize: a.BundlePayPrice.ArtworkSize, ArtworkSize: a.BundlePayPrice.ArtworkSize,
ShowAddress: a.BundlePayPrice.ShowAddress, ShowAddress: a.BundlePayPrice.ShowAddress,
Status: a.BundlePayPrice.Status, Status: a.BundlePayPrice.Status,
ArtistName: a.BundlePayPrice.ArtistName,
ID: a.BundlePayPrice.ID, ID: a.BundlePayPrice.ID,
} }
} }

@ -46,15 +46,49 @@ func (m *Exhibition) SaveApprovalContent(in *approval.CreateRequest, a *Approval
var approvalExhibitions []ApprovalExhibition var approvalExhibitions []ApprovalExhibition
for _, approvalExhibition := range in.Exhibition.ApprovalExhibitions { for _, approvalExhibition := range in.Exhibition.ApprovalExhibitions {
temp := ApprovalExhibition{ temp := ApprovalExhibition{
ApprovalID: a.ID,
ExhibitionID: m.ID,
PackageName: approvalExhibition.PackageName,
PackageID: approvalExhibition.PackageID,
PackageSize: approvalExhibition.PackageSize,
PackageNumber: approvalExhibition.PackageNumber,
Address: approvalExhibition.Address,
ShowDate: approvalExhibition.ShowDate,
}
ApprovalID: a.ID, //保存包主体
ExhibitionID: m.ID, temp.ArtExhibitionDetail = ArtExhibitionDetail{
PackageName: approvalExhibition.PackageName, ShowUID: approvalExhibition.ArtExhibitionDetail.ShowUID,
PackageID: approvalExhibition.PackageID, ShowSeq: approvalExhibition.ArtExhibitionDetail.ShowSeq,
//PackageSize: approvalExhibition.PackageSize, ShowName: approvalExhibition.ArtExhibitionDetail.ShowName,
//PackageNumber: approvalExhibition.PackageNumber, ArtistName: approvalExhibition.ArtExhibitionDetail.ArtistName,
Address: approvalExhibition.Address, ArtistUID: approvalExhibition.ArtExhibitionDetail.ArtistUID,
ShowDate: approvalExhibition.ShowDate, ArtworkNum: approvalExhibition.ArtExhibitionDetail.ArtworkNum,
Ruler: approvalExhibition.ArtExhibitionDetail.Ruler,
Price: approvalExhibition.ArtExhibitionDetail.Price,
Reward: approvalExhibition.ArtExhibitionDetail.Reward,
CreateTime: approvalExhibition.ArtExhibitionDetail.CreateTime,
Operator: approvalExhibition.ArtExhibitionDetail.Operator,
IsShow: approvalExhibition.ArtExhibitionDetail.IsShow,
ShowTime: approvalExhibition.ArtExhibitionDetail.ShowTime,
Address: approvalExhibition.ArtExhibitionDetail.Address,
}
//画作详情
for _, t := range approvalExhibition.Artworks {
art := Artwork{
ArtworkPriceUID: t.ArtworkPriceUID,
ShowUID: t.ShowUID,
ArtworkUID: t.ArtworkUID,
ArtworkName: t.ArtworkName,
ArtistName: t.ArtistName,
Length: t.Length,
Width: t.Width,
Ruler: t.Ruler,
SmallPic: t.SmallPic,
}
temp.Artworks = append(temp.Artworks, art)
} }
approvalExhibitions = append(approvalExhibitions, temp) approvalExhibitions = append(approvalExhibitions, temp)
@ -184,16 +218,52 @@ func (m *Exhibition) BuildResContent(a *Approval, request *approval.CreateReques
for _, one := range a.Exhibition.ApprovalExhibitions { for _, one := range a.Exhibition.ApprovalExhibitions {
temp := &approval.ApprovalExhibition{ temp := &approval.ApprovalExhibition{
ID: one.ID, ID: one.ID,
ApprovalID: one.ApprovalID, ApprovalID: one.ApprovalID,
ExhibitionID: one.ExhibitionID, ExhibitionID: one.ExhibitionID,
PackageID: one.PackageID, PackageID: one.PackageID,
PackageName: one.PackageName, PackageName: one.PackageName,
//PackageSize: one.PackageSize, PackageSize: one.PackageSize,
//PackageNumber: one.PackageNumber, PackageNumber: one.PackageNumber,
Address: one.Address, Address: one.Address,
ShowDate: one.ShowDate, ShowDate: one.ShowDate,
}
//保存包主体
temp.ArtExhibitionDetail = &approval.ArtExhibitionDetail{
ShowUID: one.ArtExhibitionDetail.ShowUID,
ShowSeq: one.ArtExhibitionDetail.ShowSeq,
ShowName: one.ArtExhibitionDetail.ShowName,
ArtistName: one.ArtExhibitionDetail.ArtistName,
ArtistUID: one.ArtExhibitionDetail.ArtistUID,
ArtworkNum: one.ArtExhibitionDetail.ArtworkNum,
Ruler: one.ArtExhibitionDetail.Ruler,
Price: one.ArtExhibitionDetail.Price,
Reward: one.ArtExhibitionDetail.Reward,
CreateTime: one.ArtExhibitionDetail.CreateTime,
Operator: one.ArtExhibitionDetail.Operator,
IsShow: one.ArtExhibitionDetail.IsShow,
ShowTime: one.ArtExhibitionDetail.ShowTime,
Address: one.ArtExhibitionDetail.Address,
} }
//画作详情
for _, t := range one.Artworks {
art := &approval.Artwork{
ArtworkPriceUID: t.ArtworkPriceUID,
ShowUID: t.ShowUID,
ArtworkUID: t.ArtworkUID,
ArtworkName: t.ArtworkName,
ArtistName: t.ArtistName,
Length: t.Length,
Width: t.Width,
Ruler: t.Ruler,
SmallPic: t.SmallPic,
}
temp.Artworks = append(temp.Artworks, art)
}
approvalExhibitions = append(approvalExhibitions, temp) approvalExhibitions = append(approvalExhibitions, temp)
} }

@ -9,6 +9,7 @@ func migration() {
//自动迁移模式 //自动迁移模式
addTable(&ApprovalTypeGroup{}) addTable(&ApprovalTypeGroup{})
addTable(&BundlePayPrice{}) addTable(&BundlePayPrice{})
addTable(&ApprovalCopy{})
//增加字段 //增加字段
addColumn(&ApprovalType{}, "is_normal") addColumn(&ApprovalType{}, "is_normal")
@ -26,6 +27,46 @@ func migration() {
addColumn(&Approval{}, "value_json") addColumn(&Approval{}, "value_json")
addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "status")
addColumn(&BundlePayPrice{}, "artist_name")
var num int64
var list []*Approval
DB.Model(&ApprovalCopy{}).Count(&num)
if num > 0 {
return
}
//同步更新数据
DB.Model(&Approval{}).Find(&list)
if len(list) == 0 {
return
}
for _, t := range list {
for _, tt := range t.CopyUsers {
status := 1
if tt.IsViewed == true {
status = 2
}
temp := &ApprovalCopy{
ApprovalID: t.ID,
UserId: tt.ID,
Name: tt.Name,
Status: uint64(status),
}
var n int64
DB.Model(&ApprovalCopy{}).Where(temp).Count(&n)
if n > 0 {
continue
}
DB.Model(&ApprovalCopy{}).Create(&temp)
}
}
} }
//数据迁移 //数据迁移

@ -260,7 +260,11 @@ func (a *ApprovalProvider) MyWork(ctx context.Context, in *approval.ListRequest)
var list []*model.Approval var list []*model.Approval
var count int64 var count int64
list, count = model.MyWorkApprovals(in) if in.Status == 0 && in.ApprovedBossId == 0 {
list, count = model.MyAllWorkApprovals(in)
} else {
list, count = model.MyWorkApprovals(in)
}
response.Count = uint64(count) response.Count = uint64(count)
response.Data = serializer.BuildApprovals(list, in.UserID) response.Data = serializer.BuildApprovals(list, in.UserID)
@ -333,7 +337,7 @@ func (a *ApprovalProvider) DetailSetting(ctx context.Context, in *approval.Detai
func (a *ApprovalProvider) CreateType(ctx context.Context, in *approval.CreateTypeRequest) (*approval.TypeResponse, error) { func (a *ApprovalProvider) CreateType(ctx context.Context, in *approval.CreateTypeRequest) (*approval.TypeResponse, error) {
response := &approval.TypeResponse{} response := &approval.TypeResponse{}
fmt.Println("创建类型:", in.String()) fmt.Println("创建类型123123:", in.String())
//创建分组 //创建分组
groupId, err := model.GetGroupIdByName(in.GroupName, in.Domain) groupId, err := model.GetGroupIdByName(in.GroupName, in.Domain)
if err != nil { if err != nil {
@ -399,6 +403,9 @@ func (a *ApprovalProvider) UpdateType(ctx context.Context, in *approval.CreateTy
typeObj.Title = in.Title typeObj.Title = in.Title
typeObj.Remark = in.Remark typeObj.Remark = in.Remark
if len(in.KeyInfos) > 0 {
typeObj.KeyJson = model.ToKeyInfos(in.KeyInfos)
}
if err := model.DB.Save(&typeObj).Error; err != nil { if err := model.DB.Save(&typeObj).Error; err != nil {
return nil, err return nil, err

Loading…
Cancel
Save