Compare commits

..

7 Commits
main ... dev

Author SHA1 Message Date
sxy
91112256da Merge branch 'sxy' into dev 2025-06-17 15:25:25 +08:00
sxy
5afd00ed95 Merge branch 'sxy' into dev 2025-06-17 14:44:22 +08:00
sxy
f74d6290ea Merge branch 'sxy' into dev 2025-06-17 14:15:00 +08:00
sxy
117b70c1f7 Merge branch 'sxy' into dev 2025-06-17 14:12:19 +08:00
sxy
7fba8a8d11 Merge branch 'sxy' into dev 2025-06-17 14:06:31 +08:00
sxy
33989e4a1d Merge branch 'sxy' into dev 2025-06-17 11:51:55 +08:00
sxy
9794b7f158 Merge branch 'sxy' into dev 2025-06-17 10:33:05 +08:00
11 changed files with 426 additions and 698 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT. // Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: secFilings.proto // source: api/secFilings/secFilings.proto
package secFilings package secFilings

View File

@ -1,8 +1,8 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT. // Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions: // versions:
// - protoc-gen-go-triple v1.0.8 // - protoc-gen-go-triple v1.0.8
// - protoc v3.20.3 // - protoc v5.29.2
// source: secFilings.proto // source: api/secFilings/secFilings.proto
package secFilings package secFilings
@ -503,5 +503,5 @@ var SecFilings_ServiceDesc = grpc_go.ServiceDesc{
}, },
}, },
Streams: []grpc_go.StreamDesc{}, Streams: []grpc_go.StreamDesc{},
Metadata: "secFilings.proto", Metadata: "api/secFilings/secFilings.proto",
} }

View File

@ -1,5 +0,0 @@
docDb:
host: net-11-fontree-mysql-service:3306
user: fonchain_opv
password: IhQmhg8HZjDmU=Ove5PnA^D
dbName: micro-document

View File

@ -1,20 +0,0 @@
dubbo:
registries:
demoZK:
protocol: zookeeper
address: zookeeper:2181
protocols:
triple:
name: tri
port: 20028
provider:
services:
GovernanceProvider:
protocol: tri
interface: governance.Governance # must be compatible with grpc or dubbo-java
PressReleasesProvider:
protocol: tri
interface: pressreleases.PressReleases # must be compatible with grpc or dubbo-java
SecFilingsProvider:
protocol: tri
interface: com.fontree.microservices.fiee.SecFiling # must be compatible with grpc or dubbo-java

View File

@ -8,6 +8,7 @@ import (
"time" "time"
"github.com/go-sql-driver/mysql" "github.com/go-sql-driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/clause" "gorm.io/gorm/clause"
) )
@ -34,8 +35,10 @@ func (governanceDao) List(req *governance.ListReq) (data []model.Governance, tot
func (governanceDao) Delete(req *governance.DeleteReq) (err error) { func (governanceDao) Delete(req *governance.DeleteReq) (err error) {
return db.DocDB.Delete(&model.Governance{ return db.DocDB.Delete(&model.Governance{
ID: uint(req.Id), Model: gorm.Model{
UpdatedAt: time.Now(), ID: uint(req.Id),
UpdatedAt: time.Now(),
},
}).Error }).Error
} }
@ -48,7 +51,9 @@ func (governanceDao) Edit(req *governance.EditReq) (err error) {
AttachmentName: req.AttachmentName, AttachmentName: req.AttachmentName,
Operator: req.Operator, Operator: req.Operator,
OperatorID: int(req.OperatorId), OperatorID: int(req.OperatorId),
UpdatedAt: time.Now(), Model: gorm.Model{
UpdatedAt: time.Now(),
},
}).Error }).Error
if err != nil { if err != nil {
var mysqlErr *mysql.MySQLError var mysqlErr *mysql.MySQLError

View File

@ -92,8 +92,10 @@ func (pressReleasesDao) Edit(req *pressreleases.EditReq) (err error) {
OperatorID: uint(req.OperatorId), OperatorID: uint(req.OperatorId),
Content: req.Content, Content: req.Content,
Display: int(req.Display), Display: int(req.Display),
CreatedAt: time.UnixMilli(int64(req.CreatedAt)), Model: gorm.Model{
UpdatedAt: time.Now(), CreatedAt: time.UnixMilli(int64(req.CreatedAt)),
UpdatedAt: time.Now(),
},
}).Error }).Error
if err != nil { if err != nil {
var mysqlErr *mysql.MySQLError var mysqlErr *mysql.MySQLError
@ -127,8 +129,10 @@ func (pressReleasesDao) Create(req *pressreleases.CreateReq) (err error) {
Content: req.Content, Content: req.Content,
Summary: req.Summary, Summary: req.Summary,
Display: int(req.Display), Display: int(req.Display),
CreatedAt: time.UnixMilli(int64(req.CreatedAt)), Model: gorm.Model{
UpdatedAt: time.Now(), CreatedAt: time.UnixMilli(int64(req.CreatedAt)),
UpdatedAt: time.Now(),
},
}).Error }).Error
if err != nil { if err != nil {
var mysqlErr *mysql.MySQLError var mysqlErr *mysql.MySQLError
@ -152,7 +156,9 @@ func (pressReleasesDao) Create(req *pressreleases.CreateReq) (err error) {
func (pressReleasesDao) Delete(req *pressreleases.DeleteReq) (err error) { func (pressReleasesDao) Delete(req *pressreleases.DeleteReq) (err error) {
return db.DocDB.Delete(&model.PressReleases{ return db.DocDB.Delete(&model.PressReleases{
ID: uint(req.Id), Model: gorm.Model{
ID: uint(req.Id),
},
}).Error }).Error
} }

View File

@ -30,7 +30,7 @@ func (secFilingsDao) CreateSecFiling(req *secFilings.CreateSecFilingReq) (*secFi
} }
j, err := json.Marshal(dataFiles) j, err := json.Marshal(dataFiles)
if err != nil { if err != nil {
return nil, errors.New("文件转换失败") return nil, errors.New("datafiles文件json转换失败: " + err.Error())
} }
filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FileLink) filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FileLink)
var count int64 var count int64
@ -38,7 +38,7 @@ func (secFilingsDao) CreateSecFiling(req *secFilings.CreateSecFilingReq) (*secFi
return nil, err return nil, err
} }
if count != 0 { if count != 0 {
return nil, errors.New("key已存在,创建失败") return nil, errors.New("filing_key已存在")
} }
if err := db.DocDB.Model(&model.SecFilings{}).Create(&model.SecFilings{ if err := db.DocDB.Model(&model.SecFilings{}).Create(&model.SecFilings{
FilingKey: filingKey, FilingKey: filingKey,
@ -57,6 +57,7 @@ func (secFilingsDao) CreateSecFiling(req *secFilings.CreateSecFilingReq) (*secFi
return nil, err return nil, err
} }
resp.FilingKey = filingKey resp.FilingKey = filingKey
resp.Msg = "create success"
return resp, nil return resp, nil
} }
func (secFilingsDao) UpdateSecFiling(query map[string]string, column map[string]interface{}) (*secFilings.CommonResp, error) { func (secFilingsDao) UpdateSecFiling(query map[string]string, column map[string]interface{}) (*secFilings.CommonResp, error) {
@ -64,6 +65,7 @@ func (secFilingsDao) UpdateSecFiling(query map[string]string, column map[string]
if err := db.DocDB.Model(&model.SecFilings{}).Where("filing_key = ?", query["filing_key"]).Updates(column).Error; err != nil { if err := db.DocDB.Model(&model.SecFilings{}).Where("filing_key = ?", query["filing_key"]).Updates(column).Error; err != nil {
return nil, err return nil, err
} }
resp.Msg = "update success"
return resp, nil return resp, nil
} }
func (secFilingsDao) ListSecFiling(req *secFilings.ListSecFilingReq) (res []*model.SecFilings, total int64, err error) { func (secFilingsDao) ListSecFiling(req *secFilings.ListSecFilingReq) (res []*model.SecFilings, total int64, err error) {
@ -73,7 +75,7 @@ func (secFilingsDao) ListSecFiling(req *secFilings.ListSecFilingReq) (res []*mod
query = query.Where("form LIKE ?", "%"+form+"%") query = query.Where("form LIKE ?", "%"+form+"%")
} }
if req.FilingDateBegin != "" && req.FilingDateEnd != "" && req.FilingDateBegin > req.FilingDateEnd { if req.FilingDateBegin != "" && req.FilingDateEnd != "" && req.FilingDateBegin > req.FilingDateEnd {
return nil, 0, errors.New("开始日期超过结束日期") return nil, 0, errors.New("开始日期不能大于结束日期")
} }
@ -141,6 +143,7 @@ func (secFilingsDao) UpdateSecFilingStatus(query map[string]string, column map[s
return nil, err return nil, err
} }
resp.FilingKey = query["filing_key"] resp.FilingKey = query["filing_key"]
resp.Msg = "update status success"
return resp, nil return resp, nil
} }
func (secFilingsDao) ListFormType(req *secFilings.ListFormTypeReq) (res []*model.FormType, total int64, err error) { func (secFilingsDao) ListFormType(req *secFilings.ListFormTypeReq) (res []*model.FormType, total int64, err error) {

View File

@ -16,13 +16,14 @@ var SecFilingsLogic = new(secFilingsLogic)
func (secFilingsLogic) CreateSecFiling(req *secFilings.CreateSecFilingReq) (*secFilings.CommonResp, error) { func (secFilingsLogic) CreateSecFiling(req *secFilings.CreateSecFilingReq) (*secFilings.CommonResp, error) {
resp, err := dao.SecFilingsDao.CreateSecFiling(req) resp, err := dao.SecFilingsDao.CreateSecFiling(req)
if err != nil { if err != nil {
return nil, errors.New("创建失败") return nil, errors.New("创建失败:" + err.Error())
} }
resp.Msg = "创建成功"
return resp, nil return resp, nil
} }
func (secFilingsLogic) UpdateSecFiling(req *secFilings.UpdateSecFilingReq) (*secFilings.CommonResp, error) { func (secFilingsLogic) UpdateSecFiling(req *secFilings.UpdateSecFilingReq) (*secFilings.CommonResp, error) {
if req.FilingKey == "" { if req.FilingKey == "" {
return nil, errors.New("参数缺失") return nil, errors.New("filing_key is empty")
} }
filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FileLink) filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FileLink)
column := map[string]interface{}{ column := map[string]interface{}{
@ -43,9 +44,10 @@ func (secFilingsLogic) UpdateSecFiling(req *secFilings.UpdateSecFilingReq) (*sec
} }
resp, err := dao.SecFilingsDao.UpdateSecFiling(query, column) resp, err := dao.SecFilingsDao.UpdateSecFiling(query, column)
if err != nil { if err != nil {
return nil, errors.New("更新失败") return nil, errors.New("更新失败" + err.Error())
} }
resp.FilingKey = filingKey resp.FilingKey = filingKey
resp.Msg = "更新成功"
return resp, nil return resp, nil
} }
func (secFilingsLogic) ListSecFiling(req *secFilings.ListSecFilingReq) (*secFilings.SecFilingListResp, error) { func (secFilingsLogic) ListSecFiling(req *secFilings.ListSecFilingReq) (*secFilings.SecFilingListResp, error) {
@ -53,13 +55,13 @@ func (secFilingsLogic) ListSecFiling(req *secFilings.ListSecFilingReq) (*secFili
datas := []*secFilings.SecFiling{} datas := []*secFilings.SecFiling{}
list, total, err := dao.SecFilingsDao.ListSecFiling(req) list, total, err := dao.SecFilingsDao.ListSecFiling(req)
if err != nil { if err != nil {
return nil, errors.New("查询失败") return nil, errors.New("查询失败" + err.Error())
} }
for _, item := range list { for _, item := range list {
dataFiles := []*secFilings.DataFiles{} dataFiles := []*secFilings.DataFiles{}
if item.DataFiles != nil && len(item.DataFiles) != 0 { if item.DataFiles != nil && len(item.DataFiles) != 0 {
if err := json.Unmarshal(item.DataFiles, &dataFiles); err != nil { if err := json.Unmarshal(item.DataFiles, &dataFiles); err != nil {
return nil, errors.New("文件转换失败") return nil, errors.New("datafiles文件json转换失败: " + err.Error())
} }
} }
datas = append(datas, &secFilings.SecFiling{ datas = append(datas, &secFilings.SecFiling{
@ -82,6 +84,7 @@ func (secFilingsLogic) ListSecFiling(req *secFilings.ListSecFilingReq) (*secFili
}) })
} }
resp.Total = uint32(total) resp.Total = uint32(total)
resp.Msg = "查询成功"
resp.Data = datas resp.Data = datas
return resp, nil return resp, nil
@ -89,15 +92,15 @@ func (secFilingsLogic) ListSecFiling(req *secFilings.ListSecFilingReq) (*secFili
func (secFilingsLogic) DetailSecFiling(req *secFilings.DetailSecFilingReq) (*secFilings.SecFilingDetailResp, error) { func (secFilingsLogic) DetailSecFiling(req *secFilings.DetailSecFilingReq) (*secFilings.SecFilingDetailResp, error) {
resp := &secFilings.SecFilingDetailResp{} resp := &secFilings.SecFilingDetailResp{}
if req.FilingKey == "" { if req.FilingKey == "" {
return nil, errors.New("参数缺失") return nil, errors.New("filing_key is empty")
} }
detail, err := dao.SecFilingsDao.DetailSecFiling(req) detail, err := dao.SecFilingsDao.DetailSecFiling(req)
if err != nil { if err != nil {
return nil, errors.New("查询失败") return nil, errors.New("查询失败" + err.Error())
} }
var dataFiles []*secFilings.DataFiles var dataFiles []*secFilings.DataFiles
if err := json.Unmarshal(detail.DataFiles, &dataFiles); err != nil { if err := json.Unmarshal(detail.DataFiles, &dataFiles); err != nil {
return nil, errors.New("文件转换失败") return nil, errors.New("datafiles文件json转换失败: " + err.Error())
} }
data := &secFilings.SecFiling{ data := &secFilings.SecFiling{
FilingKey: detail.FilingKey, FilingKey: detail.FilingKey,
@ -116,39 +119,41 @@ func (secFilingsLogic) DetailSecFiling(req *secFilings.DetailSecFilingReq) (*sec
CreatedAt: time.Unix(detail.CreatedAt, 0).Format("2006-01-02 15:04:05"), CreatedAt: time.Unix(detail.CreatedAt, 0).Format("2006-01-02 15:04:05"),
UpdatedAt: time.Unix(detail.UpdatedAt, 0).Format("2006-01-02 15:04:05"), UpdatedAt: time.Unix(detail.UpdatedAt, 0).Format("2006-01-02 15:04:05"),
} }
resp.Msg = "查询成功"
resp.Data = data resp.Data = data
return resp, nil return resp, nil
} }
func (secFilingsLogic) DeleteSecFiling(req *secFilings.DeleteSecFilingReq) (*secFilings.CommonResp, error) { func (secFilingsLogic) DeleteSecFiling(req *secFilings.DeleteSecFilingReq) (*secFilings.CommonResp, error) {
resp := &secFilings.CommonResp{} resp := &secFilings.CommonResp{}
if req.FilingKey == "" { if req.FilingKey == "" {
return nil, errors.New("参数缺失") return nil, errors.New("filing_key is empty")
} }
if err := dao.SecFilingsDao.DeleteSecFiling(req); err != nil { if err := dao.SecFilingsDao.DeleteSecFiling(req); err != nil {
return nil, errors.New("删除失败") return nil, errors.New("删除失败" + err.Error())
} }
resp.Msg = "删除成功"
return resp, nil return resp, nil
} }
func (secFilingsLogic) IsSecFilingExist(req *secFilings.IsSecFilingExistReq) (*secFilings.IsSecFilingExistResp, error) { func (secFilingsLogic) IsSecFilingExist(req *secFilings.IsSecFilingExistReq) (*secFilings.IsSecFilingExistResp, error) {
resp := &secFilings.IsSecFilingExistResp{} resp := &secFilings.IsSecFilingExistResp{}
if req.FilingDate == "" || req.Form == "" || req.FinalLink == "" { if req.FilingDate == "" || req.Form == "" || req.FinalLink == "" {
return nil, errors.New("参数缺失") return nil, errors.New("filing_date or form_type or final_link is empty")
} }
filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FinalLink) filingKey := model.GenFilingKey(req.FilingDate, req.Form, req.FinalLink)
exist, err := dao.SecFilingsDao.IsSecFilingExist(filingKey, req.FilingDate) exist, err := dao.SecFilingsDao.IsSecFilingExist(filingKey, req.FilingDate)
if err != nil { if err != nil {
return nil, errors.New("查询失败") return nil, errors.New("查询失败" + err.Error())
} }
resp.Exist = exist resp.Exist = exist
return resp, nil return resp, nil
} }
func (secFilingsLogic) UpdateSecFilingStatus(req *secFilings.UpdateSecFilingStatusReq) (*secFilings.CommonResp, error) { func (secFilingsLogic) UpdateSecFilingStatus(req *secFilings.UpdateSecFilingStatusReq) (*secFilings.CommonResp, error) {
if req.FilingKey == "" { if req.FilingKey == "" {
return nil, errors.New("参数缺失") return nil, errors.New("filing_key is empty")
} }
if req.Status != 1 && req.Status != 2 { if req.Status != 1 && req.Status != 2 {
return nil, errors.New("状态值无效") return nil, errors.New("invalid status value")
} }
column := map[string]interface{}{ column := map[string]interface{}{
"status": req.Status, "status": req.Status,
@ -160,15 +165,16 @@ func (secFilingsLogic) UpdateSecFilingStatus(req *secFilings.UpdateSecFilingStat
} }
resp, err := dao.SecFilingsDao.UpdateSecFilingStatus(query, column) resp, err := dao.SecFilingsDao.UpdateSecFilingStatus(query, column)
if err != nil { if err != nil {
return nil, errors.New("更新状态失败") return nil, errors.New("更新状态失败:" + err.Error())
} }
resp.Msg = "状态更新成功"
return resp, nil return resp, nil
} }
func (secFilingsLogic) ListFormType(req *secFilings.ListFormTypeReq) (*secFilings.FormTypeListResp, error) { func (secFilingsLogic) ListFormType(req *secFilings.ListFormTypeReq) (*secFilings.FormTypeListResp, error) {
resp := &secFilings.FormTypeListResp{} resp := &secFilings.FormTypeListResp{}
list, total, err := dao.SecFilingsDao.ListFormType(req) list, total, err := dao.SecFilingsDao.ListFormType(req)
if err != nil { if err != nil {
return nil, errors.New("查询失败") return nil, errors.New("查询失败" + err.Error())
} }
for _, item := range list { for _, item := range list {
resp.FormType = append(resp.FormType, &secFilings.FormType{ resp.FormType = append(resp.FormType, &secFilings.FormType{
@ -184,13 +190,13 @@ func (secFilingsLogic) WebListSecFiling(req *secFilings.WebListSecFilingReq) (*s
datas := []*secFilings.SecFiling{} datas := []*secFilings.SecFiling{}
list, total, err := dao.SecFilingsDao.WebListSecFiling(req) list, total, err := dao.SecFilingsDao.WebListSecFiling(req)
if err != nil { if err != nil {
return nil, errors.New("查询失败") return nil, errors.New("查询失败" + err.Error())
} }
for _, item := range list { for _, item := range list {
dataFiles := []*secFilings.DataFiles{} dataFiles := []*secFilings.DataFiles{}
if item.DataFiles != nil && len(item.DataFiles) != 0 { if item.DataFiles != nil && len(item.DataFiles) != 0 {
if err := json.Unmarshal(item.DataFiles, &dataFiles); err != nil { if err := json.Unmarshal(item.DataFiles, &dataFiles); err != nil {
return nil, errors.New("文件转换失败") return nil, errors.New("datafiles文件json转换失败: " + err.Error())
} }
} }
datas = append(datas, &secFilings.SecFiling{ datas = append(datas, &secFilings.SecFiling{
@ -213,6 +219,7 @@ func (secFilingsLogic) WebListSecFiling(req *secFilings.WebListSecFilingReq) (*s
}) })
} }
resp.Total = uint32(total) resp.Total = uint32(total)
resp.Msg = "查询成功"
resp.Data = datas resp.Data = datas
return resp, nil return resp, nil
} }

View File

@ -1,23 +1,16 @@
package model package model
import ( import "gorm.io/gorm"
"time"
"gorm.io/gorm"
)
type Governance struct { type Governance struct {
ID uint `gorm:"primarykey"` gorm.Model
CreatedAt time.Time Title string `gorm:"type:varchar(100);uniqueIndex:governance_unique;not null"`
UpdatedAt time.Time Attachment string `gorm:"type:varchar(1024);not null;default:'';comment:附件链接"`
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_governance_deleted_at;uniqueIndex:governance_unique;"` AttachmentName string `gorm:"type:varchar(1024);not null;default:'';comment:附件文件名"`
Title string `gorm:"column:title;type:varchar(100);not null;uniqueIndex:governance_unique"` Sort int `gorm:"comment:排序"`
Attachment string `gorm:"type:varchar(1024);not null;default:'';comment:附件链接"` Status int `gorm:"comment:状态 1下架 2 上架"`
AttachmentName string `gorm:"type:varchar(1024);not null;default:'';comment:附件文件名"` Operator string `gorm:"type:varchar(50);comment:操作人"`
Sort int `gorm:"comment:排序"` OperatorID int `gorm:"column:operator_id;comment:操作人Id"`
Status int `gorm:"comment:状态 1下架 2 上架"`
Operator string `gorm:"type:varchar(50);comment:操作人"`
OperatorID int `gorm:"column:operator_id;comment:操作人Id"`
} }
func (*Governance) TableName() string { func (*Governance) TableName() string {

View File

@ -1,26 +1,19 @@
package model package model
import ( import "gorm.io/gorm"
"time"
"gorm.io/gorm"
)
type PressReleases struct { type PressReleases struct {
ID uint `gorm:"primarykey"` gorm.Model
CreatedAt time.Time Title string `gorm:"type:varchar(100);uniqueIndex:press_releases_unique"`
UpdatedAt time.Time Sort uint `gorm:"not null"`
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_governance_deleted_at;uniqueIndex:governance_unique;"` Content string `gorm:"type:longtext"`
Title string `gorm:"column:title;type:varchar(100);not null;uniqueIndex:governance_unique"` Attachment string `gorm:"type:varchar(1024)"`
Sort uint `gorm:"not null"` Display int `gorm:"comment:状态 1不展示 2 展示"`
Content string `gorm:"type:longtext"` Summary string `gorm:"type:text;comment:摘要"`
Attachment string `gorm:"type:varchar(1024)"` Status int `gorm:"comment:状态 1下架 2 上架"`
Display int `gorm:"comment:状态 1不展示 2 展示"` Operator string `gorm:"type:varchar(100)"`
Summary string `gorm:"type:text;comment:摘要"` OperatorID uint `gorm:"column:operator_id"`
Status int `gorm:"comment:状态 1下架 2 上架"` AttachmentName string `gorm:"type:varchar(1024)"`
Operator string `gorm:"type:varchar(100)"`
OperatorID uint `gorm:"column:operator_id"`
AttachmentName string `gorm:"type:varchar(1024)"`
} }
func (*PressReleases) TableName() string { func (*PressReleases) TableName() string {