Compare commits

..

9 Commits
dev ... main

Author SHA1 Message Date
sxy
9673b61356 Merge branch 'sxy' 2025-06-18 10:55:23 +08:00
sxy
27711fbb6a 修改返回语言 2025-06-18 10:55:02 +08:00
lzh
29b5006f1b Merge branch 'dev-lzh' 2025-06-18 09:33:39 +08:00
lzh
1127619b9f 修改unique约束 2025-06-18 09:33:32 +08:00
lzh
f8c0e3991d 修改protoc版本 2025-06-17 21:27:44 +08:00
lzh
7ed5e148b2 更新数据库地址 2025-06-17 20:28:21 +08:00
lzh
750ad44314 添加正式环境配置 2025-06-17 18:52:12 +08:00
lzh
1ccd6178ec 添加正式环境配置 2025-06-17 18:47:33 +08:00
sxy
813cb0c5c2 Merge branch 'sxy' 2025-06-17 18:29:16 +08:00
11 changed files with 698 additions and 426 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.
// source: api/secFilings/secFilings.proto
// source: secFilings.proto
package secFilings

View File

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

5
conf/prod/config.yaml Normal file
View File

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

20
conf/prod/dubbogo.yaml Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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