1、前端对接后的调整
This commit is contained in:
parent
12d6ea7afc
commit
3f3c36750e
|
@ -58,6 +58,7 @@ type LogOptions struct {
|
|||
}
|
||||
|
||||
type MinioConfig struct {
|
||||
Protocol string `yaml:"protocol"` //http or https
|
||||
Endpoint string `yaml:"endpoint"`
|
||||
AccessKeyId string `yaml:"accessKeyId"`
|
||||
SecretAccessKey string `yaml:"secretAccessKey"`
|
||||
|
|
|
@ -16,6 +16,7 @@ logging:
|
|||
mineData:
|
||||
accessKey: f0bda738033e47ffbfbd5d3f865c19e1
|
||||
minio:
|
||||
protocol: http
|
||||
endpoint: 127.0.0.1:9000
|
||||
accessKeyId: root
|
||||
secretAccessKey: OIxv7QptYBO3
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
package handler
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"hpds-iot-web/internal/proto"
|
||||
"hpds-iot-web/internal/service"
|
||||
"hpds-iot-web/model"
|
||||
e "hpds-iot-web/pkg/err"
|
||||
)
|
||||
|
||||
func (s HandlerService) DiseaseTypeList(c *gin.Context) (data interface{}, err error) {
|
||||
repo := service.NewDiseaseService(s.AppConfig, s.Engine, s.Logger)
|
||||
us, _ := c.Get("operatorUser")
|
||||
userInfo := us.(*model.SystemUser)
|
||||
var req proto.DiseaseTypeRequest
|
||||
err = c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
go s.SaveLog("DiseaseTypeList", "Manage", "", "", req.ToString(), fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return nil, e.NewValidErr(err)
|
||||
}
|
||||
if req.Size < 1 {
|
||||
req.Size = 20
|
||||
}
|
||||
if req.Size > 1000 {
|
||||
req.Size = 1000
|
||||
}
|
||||
if req.Page < 1 {
|
||||
req.Page = 1
|
||||
}
|
||||
data, err = repo.DiseaseTypeList(c, req)
|
||||
go s.SaveLog("获取病害类型列表", "Manage", "", "", "", fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return
|
||||
}
|
||||
|
||||
func (s HandlerService) AddDiseaseType(c *gin.Context) (data interface{}, err error) {
|
||||
repo := service.NewDiseaseService(s.AppConfig, s.Engine, s.Logger)
|
||||
us, _ := c.Get("operatorUser")
|
||||
userInfo := us.(*model.SystemUser)
|
||||
var req proto.DiseaseTypeItemRequest
|
||||
err = c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
go s.SaveLog("AddDiseaseType", "Manage", "", "", req.ToString(), fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return nil, e.NewValidErr(err)
|
||||
}
|
||||
data, err = repo.AddDiseaseType(c, req)
|
||||
go s.SaveLog("新增病害类型", "Manage", "", "", "", fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return
|
||||
}
|
||||
func (s HandlerService) EditDiseaseType(c *gin.Context) (data interface{}, err error) {
|
||||
repo := service.NewDiseaseService(s.AppConfig, s.Engine, s.Logger)
|
||||
us, _ := c.Get("operatorUser")
|
||||
userInfo := us.(*model.SystemUser)
|
||||
var req proto.DiseaseTypeItemRequest
|
||||
err = c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
go s.SaveLog("AddDiseaseType", "Manage", "", "", req.ToString(), fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return nil, e.NewValidErr(err)
|
||||
}
|
||||
data, err = repo.EditDiseaseType(c, req)
|
||||
go s.SaveLog("修改病害类型", "Manage", "", "", "", fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return
|
||||
}
|
||||
|
||||
func (s HandlerService) DeleteDiseaseType(c *gin.Context) (data interface{}, err error) {
|
||||
repo := service.NewDiseaseService(s.AppConfig, s.Engine, s.Logger)
|
||||
us, _ := c.Get("operatorUser")
|
||||
userInfo := us.(*model.SystemUser)
|
||||
var req proto.DiseaseTypeItemRequest
|
||||
err = c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
go s.SaveLog("AddDiseaseType", "Manage", "", "", req.ToString(), fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return nil, e.NewValidErr(err)
|
||||
}
|
||||
data, err = repo.DeleteDiseaseType(c, req)
|
||||
go s.SaveLog("删除病害类型", "Manage", "", "", "", fmt.Sprintf("%d", userInfo.UserId), c.Request.RemoteAddr, "")
|
||||
return
|
||||
}
|
|
@ -405,3 +405,31 @@ func (p BrandItemRequest) ToString() string {
|
|||
}
|
||||
return string(data)
|
||||
}
|
||||
|
||||
type DiseaseTypeRequest struct {
|
||||
CategoryId int `json:"categoryId"`
|
||||
Key string `json:"key"`
|
||||
BasePageList
|
||||
}
|
||||
|
||||
func (p DiseaseTypeRequest) ToString() string {
|
||||
data, err := json.Marshal(p)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return string(data)
|
||||
}
|
||||
|
||||
type DiseaseTypeItemRequest struct {
|
||||
TypeId int64 `json:"typeId"`
|
||||
TypeName string `json:"typeName"`
|
||||
CategoryId int `json:"categoryId"`
|
||||
}
|
||||
|
||||
func (p DiseaseTypeItemRequest) ToString() string {
|
||||
data, err := json.Marshal(p)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return string(data)
|
||||
}
|
||||
|
|
|
@ -36,3 +36,7 @@ type OwnerItem struct {
|
|||
ChargeUser string `json:"chargeUser"`
|
||||
Phone string `json:"phone"`
|
||||
}
|
||||
|
||||
type UploadResponse struct {
|
||||
Url string `json:"url"`
|
||||
}
|
||||
|
|
|
@ -139,6 +139,16 @@ func InitRouter(cfg *config.WebConfig, logger *logging.Logger, engine *xorm.Engi
|
|||
brand.POST("/delete", e.ErrorWrapper(hs.DeleteBrand))
|
||||
}
|
||||
}
|
||||
disease := r.Group("/disease")
|
||||
{
|
||||
diseaseType := disease.Group("/type")
|
||||
{
|
||||
diseaseType.POST("/list", e.ErrorWrapper(hs.DiseaseTypeList))
|
||||
diseaseType.POST("/add", e.ErrorWrapper(hs.AddDiseaseType))
|
||||
diseaseType.POST("/edit", e.ErrorWrapper(hs.EditDiseaseType))
|
||||
diseaseType.POST("/delete", e.ErrorWrapper(hs.DeleteDiseaseType))
|
||||
}
|
||||
}
|
||||
}
|
||||
return root
|
||||
}
|
||||
|
|
|
@ -0,0 +1,194 @@
|
|||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"git.hpds.cc/Component/logging"
|
||||
"hpds-iot-web/config"
|
||||
"hpds-iot-web/internal/proto"
|
||||
"hpds-iot-web/model"
|
||||
"net/http"
|
||||
"time"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
type DiseaseService interface {
|
||||
DiseaseTypeList(ctx context.Context, req proto.DiseaseTypeRequest) (rsp *proto.BaseResponse, err error)
|
||||
AddDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error)
|
||||
EditDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error)
|
||||
DeleteDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error)
|
||||
}
|
||||
|
||||
func NewDiseaseService(cfg *config.WebConfig, engine *xorm.Engine, logger *logging.Logger) DiseaseService {
|
||||
return &repo{
|
||||
AppConfig: cfg,
|
||||
engine: engine,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (rp *repo) DiseaseTypeList(ctx context.Context, req proto.DiseaseTypeRequest) (rsp *proto.BaseResponse, err error) {
|
||||
rsp = new(proto.BaseResponse)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
err = fmt.Errorf("超时/取消")
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Message = "超时/取消"
|
||||
rsp.Err = ctx.Err()
|
||||
return rsp, ctx.Err()
|
||||
default:
|
||||
data := make([]model.DiseaseType, 0)
|
||||
count, err := rp.engine.Where("(? = '' or type_name like ?)", req.Key, "%"+req.Key+"%").
|
||||
And("(? = 0 or category_id = ?)", req.CategoryId, req.CategoryId).
|
||||
And("status = 1").Limit(int(req.Size), int(((req.Page)-1)*req.Size)).
|
||||
FindAndCount(&data)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
rsp.Code = http.StatusOK
|
||||
rsp.Status = http.StatusText(http.StatusOK)
|
||||
rsp.Message = "成功"
|
||||
rsp = FillPaging(count, req.Page, req.Size, data, rsp)
|
||||
rsp.Err = err
|
||||
return rsp, err
|
||||
}
|
||||
ReturnPoint:
|
||||
if err != nil {
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Err = err
|
||||
rsp.Message = "失败"
|
||||
}
|
||||
return rsp, err
|
||||
}
|
||||
func (rp *repo) AddDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error) {
|
||||
rsp = new(proto.BaseResponse)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
err = fmt.Errorf("超时/取消")
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Message = "超时/取消"
|
||||
rsp.Err = ctx.Err()
|
||||
return rsp, ctx.Err()
|
||||
default:
|
||||
item := &model.DiseaseType{
|
||||
TypeName: req.TypeName,
|
||||
CategoryId: req.CategoryId,
|
||||
Status: 1,
|
||||
CreateAt: time.Now().Unix(),
|
||||
UpdateAt: time.Now().Unix(),
|
||||
}
|
||||
_, err = rp.engine.Insert(item)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
|
||||
rsp.Code = http.StatusOK
|
||||
rsp.Status = http.StatusText(http.StatusOK)
|
||||
rsp.Message = "新增病害类型成功"
|
||||
rsp.Err = ctx.Err()
|
||||
rsp.Data = item
|
||||
return rsp, err
|
||||
}
|
||||
ReturnPoint:
|
||||
if err != nil {
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Err = err
|
||||
rsp.Message = "失败"
|
||||
}
|
||||
return rsp, err
|
||||
}
|
||||
func (rp *repo) EditDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error) {
|
||||
rsp = new(proto.BaseResponse)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
err = fmt.Errorf("超时/取消")
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Message = "超时/取消"
|
||||
rsp.Err = ctx.Err()
|
||||
return rsp, ctx.Err()
|
||||
default:
|
||||
var h bool
|
||||
item := new(model.DiseaseType)
|
||||
h, err = rp.engine.ID(req.TypeId).Get(item)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
if !h {
|
||||
err = fmt.Errorf("未能找到对应的类型")
|
||||
goto ReturnPoint
|
||||
}
|
||||
if len(req.TypeName) > 0 {
|
||||
item.TypeName = req.TypeName
|
||||
}
|
||||
if req.CategoryId > 0 {
|
||||
item.CategoryId = req.CategoryId
|
||||
}
|
||||
item.UpdateAt = time.Now().Unix()
|
||||
_, err = rp.engine.ID(req.TypeId).AllCols().Update(item)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
rsp.Code = http.StatusOK
|
||||
rsp.Status = http.StatusText(http.StatusOK)
|
||||
rsp.Message = "修改病害类型成功"
|
||||
rsp.Err = ctx.Err()
|
||||
rsp.Data = item
|
||||
return rsp, err
|
||||
}
|
||||
ReturnPoint:
|
||||
if err != nil {
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Err = err
|
||||
rsp.Message = "失败"
|
||||
}
|
||||
return rsp, err
|
||||
}
|
||||
func (rp *repo) DeleteDiseaseType(ctx context.Context, req proto.DiseaseTypeItemRequest) (rsp *proto.BaseResponse, err error) {
|
||||
rsp = new(proto.BaseResponse)
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
err = fmt.Errorf("超时/取消")
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Message = "超时/取消"
|
||||
rsp.Err = ctx.Err()
|
||||
return rsp, ctx.Err()
|
||||
default:
|
||||
var h bool
|
||||
item := new(model.DiseaseType)
|
||||
h, err = rp.engine.ID(req.TypeId).Get(item)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
if !h {
|
||||
err = fmt.Errorf("未能找到对应的类型")
|
||||
goto ReturnPoint
|
||||
}
|
||||
item.Status = 0
|
||||
item.UpdateAt = time.Now().Unix()
|
||||
_, err = rp.engine.ID(req.TypeId).AllCols().Update(item)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
rsp.Code = http.StatusOK
|
||||
rsp.Status = http.StatusText(http.StatusOK)
|
||||
rsp.Message = "删除病害类型成功"
|
||||
rsp.Err = ctx.Err()
|
||||
rsp.Data = item
|
||||
return rsp, err
|
||||
}
|
||||
ReturnPoint:
|
||||
if err != nil {
|
||||
rsp.Code = http.StatusInternalServerError
|
||||
rsp.Status = http.StatusText(http.StatusInternalServerError)
|
||||
rsp.Err = err
|
||||
rsp.Message = "失败"
|
||||
}
|
||||
return rsp, err
|
||||
}
|
|
@ -13,6 +13,7 @@ import (
|
|||
"io"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
"xorm.io/xorm"
|
||||
|
||||
|
@ -21,6 +22,7 @@ import (
|
|||
|
||||
type FileService interface {
|
||||
UploadFile(ctx context.Context, req proto.UploadFileRequest) (rsp *proto.BaseResponse, err error)
|
||||
UploadFileToMinIo(ctx context.Context, srcFile *multipart.FileHeader, scene string, creator int64) (data *model.FileManager, err error)
|
||||
}
|
||||
|
||||
func NewFileService(cfg *config.WebConfig, engine *xorm.Engine, logger *logging.Logger) FileService {
|
||||
|
@ -43,19 +45,23 @@ func (rp *repo) UploadFile(ctx context.Context, req proto.UploadFileRequest) (rs
|
|||
return rsp, ctx.Err()
|
||||
default:
|
||||
list := make([]*model.FileManager, len(req.Files))
|
||||
fileUrl := make([]string, len(req.Files))
|
||||
for k, _ := range req.Files {
|
||||
fileItem, err := rp.UploadFileToMinIo(ctx, req.Files[k], req.Scene, req.Creator)
|
||||
if err != nil {
|
||||
goto ReturnPoint
|
||||
}
|
||||
list[k] = fileItem
|
||||
fileUrl[k] = fileItem.AccessUrl
|
||||
}
|
||||
_, err = rp.engine.Insert(list)
|
||||
|
||||
res := proto.UploadResponse{
|
||||
Url: strings.Join(fileUrl, ","),
|
||||
}
|
||||
rsp.Code = http.StatusOK
|
||||
rsp.Status = http.StatusText(http.StatusOK)
|
||||
rsp.Message = "成功"
|
||||
rsp.Data = list
|
||||
rsp.Data = res
|
||||
rsp.Err = err
|
||||
return rsp, err
|
||||
}
|
||||
|
@ -78,21 +84,6 @@ func (rp *repo) UploadFileToMinIo(ctx context.Context, srcFile *multipart.FileHe
|
|||
|
||||
fileName := srcFile.Filename
|
||||
|
||||
//out, err := os.Create(fileName)
|
||||
//defer out.Close()
|
||||
//if err != nil {
|
||||
// return nil, err
|
||||
//}
|
||||
//
|
||||
//_, err = io.Copy(out, file)
|
||||
//if err != nil {
|
||||
// return nil, err
|
||||
//}
|
||||
//
|
||||
//fileStat, err := out.Stat()
|
||||
//if err != nil {
|
||||
// return nil, err
|
||||
//}
|
||||
opt := &minio.Options{
|
||||
Creds: credentials.NewStaticV4(rp.AppConfig.Minio.AccessKeyId, rp.AppConfig.Minio.SecretAccessKey, ""),
|
||||
Secure: false,
|
||||
|
@ -108,7 +99,7 @@ func (rp *repo) UploadFileToMinIo(ctx context.Context, srcFile *multipart.FileHe
|
|||
return nil, err
|
||||
}
|
||||
fmt.Println("info =====> ", info)
|
||||
accessUrl := fmt.Sprintf("%s/jky-data/%s", rp.AppConfig.Minio.Endpoint, objPath)
|
||||
accessUrl := fmt.Sprintf("%s://%s/jky-data/%s", rp.AppConfig.Minio.Protocol, rp.AppConfig.Minio.Endpoint, objPath)
|
||||
|
||||
md5hash := md5.New()
|
||||
if _, err := io.Copy(md5hash, file); err != nil {
|
||||
|
|
|
@ -4,7 +4,8 @@ package model
|
|||
type Disease struct {
|
||||
DiseaseId int64 `xorm:"not null pk autoincr INT(11)" json:"diseaseId"`
|
||||
DiseaseName string `xorm:"varchar(200) not null " json:"diseaseName"`
|
||||
DiseaseType int `xorm:"not null SMALLINT default 0" json:"diseaseType"`
|
||||
DiseaseType int `xorm:"not null INT(11) default 0" json:"diseaseType"`
|
||||
CategoryId int `xorm:"not null SMALLINT default 1" json:"categoryId"` //病害分类, 1:道路 2:桥梁 3:隧道 4:边坡
|
||||
DiseaseLevel string `xorm:"varchar(20) not null" json:"diseaseLevel"`
|
||||
DetectionMethod string `xorm:"varchar(200) not null " json:"detectionMethod"`
|
||||
DiseaseDesc string `xorm:"TEXT" json:"diseaseDesc"`
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package model
|
||||
|
||||
// DiseaseType 病害类别
|
||||
type DiseaseType struct {
|
||||
TypeId int64 `xorm:"not null pk autoincr INT(11)" json:"typeId"`
|
||||
TypeName string `xorm:"varchar(200) not null" json:"typeName"`
|
||||
CategoryId int `xorm:"not null SMALLINT default 1" json:"categoryId"` //病害分类, 1:道路 2:桥梁 3:隧道 4:边坡
|
||||
Status int `xorm:"not null INT(11) default 0" json:"status"`
|
||||
CreateAt int64 `xorm:"created" json:"createAt"`
|
||||
UpdateAt int64 `xorm:"updated" json:"updateAt"`
|
||||
}
|
|
@ -27,6 +27,7 @@ func New(driveName, dsn string) {
|
|||
&Device{},
|
||||
&DeviceType{},
|
||||
&Disease{},
|
||||
&DiseaseType{},
|
||||
&FileManager{},
|
||||
&MatterAttribute{},
|
||||
&MatterCategory{},
|
||||
|
|
Loading…
Reference in New Issue