diff --git a/api/v1/device_point.go b/api/v1/device_point.go index 32e88e2..d60ba62 100644 --- a/api/v1/device_point.go +++ b/api/v1/device_point.go @@ -3,20 +3,52 @@ package v1 import ( "energy-management-system/form" "energy-management-system/request" + "energy-management-system/response" + "energy-management-system/service" "github.com/gin-gonic/gin" ) type DevicePoint struct{} // 获取测点名称select -// PointNameSelect 季度列表 + +// PointNameSelect 测点名称选择数据 func (r *DevicePoint) PointNameSelect(c *gin.Context) { var req form.PointNameSelectReq request.BindParam(c, &req) - //respData := service.GroupServices.PeakValley.PeakValleyQuarterPage(&req) - //response.SuccessData(respData, c) + respData := service.GroupServices.DevicePoint.PointNameSelect(&req) + response.SuccessData(respData, c) } -// 创建设备测点 -// 修改设备测点 +func (r *DevicePoint) DevicePointPage(c *gin.Context) { + var req form.DevicePointListReq + request.BindParam(c, &req) + respData := service.GroupServices.DevicePoint.DevicePointPage(&req) + response.SuccessData(respData, c) + +} + +// DevicePointEditDetail 查看测点 +func (r *DevicePoint) DevicePointEditDetail(c *gin.Context) { + var req form.DevicePointEditDetailReq + request.BindParam(c, &req) + respData := service.GroupServices.DevicePoint.DevicePointEditDetail(&req) + response.SuccessData(respData, c) +} + +// CreateDevicePoint 创建测点 +func (r *DevicePoint) CreateDevicePoint(c *gin.Context) { + var req form.CreateDevicePointReq + request.BindJson(c, &req) + service.GroupServices.DevicePoint.CreateDevicePoint(&req) + response.Success(c) +} + +// UpdateDevicePoint 修改测点 +func (r *DevicePoint) UpdateDevicePoint(c *gin.Context) { + var req form.UpdateDevicePointReq + request.BindJson(c, &req) + service.GroupServices.DevicePoint.UpdateDevicePoint(&req) + response.Success(c) +} diff --git a/core/gorm/gorm.go b/core/gorm/gorm.go index 8beea84..3c639ff 100644 --- a/core/gorm/gorm.go +++ b/core/gorm/gorm.go @@ -2,7 +2,7 @@ package gorm import ( "energy-management-system/global" - "energy-management-system/model" + "energy-management-system/model/device-point" "energy-management-system/model/init-db-data" peak_valley "energy-management-system/model/peak-valley" "fmt" @@ -68,8 +68,8 @@ func AutoMigrate(db *gorm.DB) { new(peak_valley.PeakValleyQuarter), new(peak_valley.PeakValleyRule), - new(model.DevicePoint), - new(model.PointName), + new(device_point.DevicePoint), + new(device_point.PointName), //new(model.Role), //new(model.UserRole), //new(model.Api), diff --git a/form/device_point.go b/form/device_point.go index fd35a92..5172862 100644 --- a/form/device_point.go +++ b/form/device_point.go @@ -3,3 +3,26 @@ package form type PointNameSelectReq struct { Keyword string `form:"keyword" json:"keyword"` } + +type DevicePointListReq struct { + Page `form:"page" json:"page"` + DriverId int `form:"driver_id" json:"driver_id"` +} + +type DevicePointEditDetailReq struct { + Id int `form:"id" json:"id"` +} +type CreateDevicePointReq struct { + DriverId int `json:"driver_id"` + PointId int `json:"point_id"` + EnergyType int `json:"energy_type"` + PointNameId int `json:"point_name_id" ` +} + +type UpdateDevicePointReq struct { + Id int `json:"id"` + DriverId int `json:"driver_id"` + PointId int `json:"point_id"` + EnergyType int `json:"energy_type"` + PointNameId int `json:"point_name_id" ` +} diff --git a/model/device_point.go b/model/device-point/device_point.go similarity index 97% rename from model/device_point.go rename to model/device-point/device_point.go index 650f7a3..d469132 100644 --- a/model/device_point.go +++ b/model/device-point/device_point.go @@ -1,4 +1,4 @@ -package model +package device_point import ( "energy-management-system/global" diff --git a/model/point_name.go b/model/device-point/point_name.go similarity index 96% rename from model/point_name.go rename to model/device-point/point_name.go index ab61b4f..588d661 100644 --- a/model/point_name.go +++ b/model/device-point/point_name.go @@ -1,4 +1,4 @@ -package model +package device_point import ( "energy-management-system/global" diff --git a/model/init-db-data/point_name.go b/model/init-db-data/point_name.go index 856267c..cc63ed8 100644 --- a/model/init-db-data/point_name.go +++ b/model/init-db-data/point_name.go @@ -2,7 +2,7 @@ package init_db_data import ( "energy-management-system/global" - "energy-management-system/model" + "energy-management-system/model/device-point" "github.com/gookit/color" "gorm.io/gorm" ) @@ -29,7 +29,7 @@ var initPointNameData = new(InitPointNameData) // return dataList //} -var pointNames = []model.PointName{ +var pointNames = []device_point.PointName{ {Name: "测点-用电量"}, {Name: "测点-用水量"}, } @@ -37,9 +37,9 @@ var pointNames = []model.PointName{ // Init 初始化用户数据 func (i *InitPointNameData) Init() error { return global.Db.Transaction(func(tx *gorm.DB) error { - m := &model.PointName{} + m := &device_point.PointName{} var count int64 - err := tx.Model(&model.PointName{}).Count(&count).Error + err := tx.Model(&device_point.PointName{}).Count(&count).Error if err != nil { return err } diff --git a/repository/device-point/device_point.go b/repository/device-point/device_point.go new file mode 100644 index 0000000..9fb1d54 --- /dev/null +++ b/repository/device-point/device_point.go @@ -0,0 +1,61 @@ +package device_point + +import ( + "energy-management-system/form" + "energy-management-system/global" + device_point_model "energy-management-system/model/device-point" +) + +type DevicePoint struct { +} + +// GetPeriodicals 根据自定义条件查询多条 + +func (r *DevicePoint) GetDevicePointPage(req *form.DevicePointListReq) (count int64, list []*device_point_model.DevicePoint, err error) { + db := global.Db.Model(&device_point_model.DevicePoint{}) + //for key, value := range qr { + // db = db.Where(key, value) + //} + if req.DriverId > 0 { + db = db.Where("driver_id = ?", req.DriverId) + } + err = db.Count(&count).Error + if err != nil { + return + } + //err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("id desc").Preload("Rule").Find(&list).Error + err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("id desc").Find(&list).Error + return +} + +func (r *DevicePoint) CreateDevicePoint(d *device_point_model.DevicePoint) error { + return global.Db.Create(d).Error +} +func (r *DevicePoint) UpdateDevicePoint(d *device_point_model.DevicePoint) error { + return global.Db.Save(d).Error +} + +func (r *DevicePoint) GetOneDevicePoint(qr map[string]interface{}) (d *device_point_model.DevicePoint, err error) { + db := global.Db + for key, value := range qr { + db = db.Where(key, value) + } + err = db.First(&d).Error + return +} + +//// DevicePoint 设备测点配置 +//type DevicePoint struct { +// Id int `gorm:"column:id;primaryKey" json:"id"` +// DriverId int `gorm:"column:driver_id;comment:设备ID" json:"driver_id"` +// PointId int `gorm:"column:point_id;comment:测点ID" json:"point_id"` +// EnergyType int `gorm:"column:energy_type;comment:能源类型" json:"energy_type"` +// PointNameId int `gorm:"column:point_name_id;comment:测点名称ID" json:"point_name_id"` +// Created time.Time `gorm:"column:created;autoCreateTime;comment:创建时间" json:"created"` +// Updated time.Time `gorm:"column:updated;autoUpdateTime;comment:修改时间" json:"updated"` +// DeletedAt gorm.DeletedAt `gorm:"index;comment:删除时间" json:"-"` +//} +// +//func (r *DevicePoint) TableName() string { +// return global.AppConf.Db.TablePrefix + "device_point_configs" +//} diff --git a/repository/device-point/point_name.go b/repository/device-point/point_name.go new file mode 100644 index 0000000..e31a61e --- /dev/null +++ b/repository/device-point/point_name.go @@ -0,0 +1,29 @@ +package device_point + +import ( + "energy-management-system/global" + device_point_model "energy-management-system/model/device-point" +) + +// // PointName 测点名称 +// +// type PointName struct { +// Id int `gorm:"column:id;primaryKey" json:"id"` +// Name string `gorm:"column:name;comment:测点名称" json:"name"` +// Created time.Time `gorm:"column:created;autoCreateTime;comment:创建时间" json:"created"` +// Updated time.Time `gorm:"column:updated;autoUpdateTime;comment:修改时间" json:"updated"` +// DeletedAt gorm.DeletedAt `gorm:"index;comment:删除时间" json:"-"` +// } +// +// func (r *PointName) TableName() string { +// return global.AppConf.Db.TablePrefix + "point_names" +// } + +func (r *DevicePoint) GetPointNameList(qr map[string]interface{}) (p []*device_point_model.PointName, err error) { + db := global.Db + for key, value := range qr { + db = db.Where(key, value) + } + err = db.Order("id DESC").Find(&p).Error + return +} diff --git a/repository/enter.go b/repository/enter.go index 0e51f44..4ba7249 100644 --- a/repository/enter.go +++ b/repository/enter.go @@ -1,9 +1,13 @@ package repository -import "energy-management-system/repository/peak-valley" +import ( + device_point "energy-management-system/repository/device-point" + "energy-management-system/repository/peak-valley" +) type groupRepository struct { peak_valley.PeakValley + device_point.DevicePoint } var GroupRepositorys = new(groupRepository) diff --git a/router/routes/device_point.go b/router/routes/device_point.go index 3a66715..ff51a84 100644 --- a/router/routes/device_point.go +++ b/router/routes/device_point.go @@ -13,5 +13,9 @@ func (r *DevicePoint) InitDevicePoint(Router *gin.RouterGroup) { devicePointApi.GET("pointNameSelect", v1.Controllers.DevicePoint.PointNameSelect) + devicePointApi.GET("devicePointPage", v1.Controllers.DevicePoint.DevicePointPage) + devicePointApi.POST("createDevicePoint", v1.Controllers.DevicePoint.CreateDevicePoint) + devicePointApi.PUT("updateDevicePoint", v1.Controllers.DevicePoint.UpdateDevicePoint) + devicePointApi.GET("devicePointEditDetail", v1.Controllers.DevicePoint.DevicePointEditDetail) } } diff --git a/service/device_point.go b/service/device_point.go new file mode 100644 index 0000000..337791e --- /dev/null +++ b/service/device_point.go @@ -0,0 +1,61 @@ +package service + +import ( + "energy-management-system/form" + device_point_model "energy-management-system/model/device-point" + "energy-management-system/repository" + "energy-management-system/utils/exception" +) + +type DevicePoint struct{} + +func (r *DevicePoint) PointNameSelect(req *form.PointNameSelectReq) (list []*device_point_model.PointName) { + queryParams := make(map[string]interface{}) + if req.Keyword != "" { + queryParams["name LIKE ?"] = "%" + req.Keyword + "%" + } + list, err := repository.GroupRepositorys.DevicePoint.GetPointNameList(queryParams) + exception.PEM(err, "获取测点名称失败") + return +} + +// DevicePointPage 测点列表 +func (r *DevicePoint) DevicePointPage(req *form.DevicePointListReq) map[string]interface{} { + count, list, err := repository.GroupRepositorys.DevicePoint.GetDevicePointPage(req) + exception.PEM(err, "获取列表失败") + ListRsp := make(map[string]interface{}) + ListRsp["total"] = count + ListRsp["list"] = list + return ListRsp +} + +func (r *DevicePoint) DevicePointEditDetail(req *form.DevicePointEditDetailReq) *device_point_model.DevicePoint { + dp, err := repository.GroupRepositorys.DevicePoint.GetOneDevicePoint(map[string]interface{}{"id": req.Id}) + exception.PBM(err != nil, "获取测点详情失败") + return dp +} + +func (r *DevicePoint) CreateDevicePoint(req *form.CreateDevicePointReq) { + var err error + dp := &device_point_model.DevicePoint{} + dp.DriverId = req.DriverId + dp.PointId = req.PointId + dp.PointNameId = req.PointNameId + dp.EnergyType = req.EnergyType + err = repository.GroupRepositorys.DevicePoint.CreateDevicePoint(dp) + exception.PBM(err != nil, "创建测点失败") + return + +} +func (r *DevicePoint) UpdateDevicePoint(req *form.UpdateDevicePointReq) { + var err error + dp, err := repository.GroupRepositorys.DevicePoint.GetOneDevicePoint(map[string]interface{}{"id": req.Id}) + exception.PBM(err != nil, "修改测点失败") + dp.DriverId = req.DriverId + dp.PointId = req.PointId + dp.PointNameId = req.PointNameId + dp.EnergyType = req.EnergyType + err = repository.GroupRepositorys.DevicePoint.UpdateDevicePoint(dp) + exception.PBM(err != nil, "修改测点失败") + return +} diff --git a/service/enter.go b/service/enter.go index 2d28ada..9a57471 100644 --- a/service/enter.go +++ b/service/enter.go @@ -3,6 +3,7 @@ package service type groupService struct { Common PeakValley + DevicePoint } var GroupServices = new(groupService)