caipin %!s(int64=4) %!d(string=hai) anos
pai
achega
d02962e465
Modificáronse 4 ficheiros con 124 adicións e 1 borrados
  1. 39 0
      dao/version_dao.go
  2. 63 0
      services/version_service.go
  3. 6 0
      web/routes/routes.go
  4. 16 1
      web/viewmodels/version.go

+ 39 - 0
dao/version_dao.go

@@ -8,6 +8,8 @@
 package dao
 
 import (
+	"errors"
+
 	"github.com/go-xorm/xorm"
 	"go.mod/models"
 )
@@ -37,3 +39,40 @@ func (d *VersionDao) Get() *models.CmVersion {
 		return data
 	}
 }
+
+func (d *VersionDao) FindById(id int) *models.CmVersion {
+	data := &models.CmVersion{}
+	_, err := d.engine.
+		Where("id=? ", id).
+		Get(data)
+	if err != nil {
+		data.Id = 0
+		return data
+	}
+	return data
+}
+
+// 获得版本更新列表
+func (d *VersionDao) GetList() []models.CmVersion {
+	datalist := make([]models.CmVersion, 0)
+	_ = d.engine.
+		Desc("id").
+		Find(&datalist)
+	return datalist
+}
+
+// 新增
+func (d *VersionDao) Add(data *models.CmVersion) error {
+	_, err := d.engine.Insert(data)
+	return err
+}
+
+// 删除
+func (d *VersionDao) Delete(id int) error {
+	data := &models.CmVersion{}
+	is, err := d.engine.Where("id = ? ", id).Delete(data)
+	if is == 0 {
+		return errors.New("未找到版本信息")
+	}
+	return err
+}

+ 63 - 0
services/version_service.go

@@ -7,14 +7,24 @@
 package services
 
 import (
+	"errors"
+	"strconv"
+	"time"
+
+	"go.mod/comm"
+	"go.mod/conf"
 	"go.mod/dao"
 	"go.mod/datasource"
+	"go.mod/models"
 	"go.mod/web/viewmodels"
 )
 
 //定义项目用户Service接口
 type VersionService interface {
 	Get() *viewmodels.Version
+	GetListBs() []viewmodels.Version
+	Add(inputData viewmodels.Version) error
+	Delete(id int) error
 }
 
 //返回service操作类
@@ -41,3 +51,56 @@ func (s *versionService) Get() *viewmodels.Version {
 	versionVm.Name = versionData.Name
 	return versionVm
 }
+
+// 获得版本信息列表
+func (s *versionService) GetListBs() []viewmodels.Version {
+
+	versionList := s.versionDao.GetList()
+
+	datalist := make([]viewmodels.Version, 0)
+	for _, data := range versionList {
+		itemVM := makeDataVM(&data)
+		datalist = append(datalist, itemVM)
+	}
+
+	return datalist
+}
+
+// 新增版本信息
+func (s *versionService) Add(inputData viewmodels.Version) error {
+
+	dataCm := &models.CmVersion{}
+	dataCm.Name = inputData.Name
+	dataCm.Content = inputData.Content
+	dataCm.CreateTime = time.Now()
+
+	err := s.versionDao.Add(dataCm)
+	return err
+}
+
+// 删除版本信息
+func (s *versionService) Delete(id int) error {
+	// 是否有该版本信息
+	if versionData := s.versionDao.FindById(id); versionData.Id == 0 {
+		return errors.New("未找到该版本信息")
+	}
+
+	err := s.versionDao.Delete(id)
+	return err
+}
+
+// 构造视图层models
+func makeDataVM(dataCM *models.CmVersion) viewmodels.Version {
+	dataVM := viewmodels.Version{}
+	id, _ := comm.AesEncrypt(strconv.Itoa(dataCM.Id), conf.SignSecret)
+
+	dataVM.Id = id
+	dataVM.Name = dataCM.Name
+	dataVM.Content = dataCM.Content
+
+	if !dataCM.CreateTime.IsZero() {
+		dataVM.CreateTime = dataCM.CreateTime.Format(conf.SysTimeform)
+	}
+
+	return dataVM
+}

+ 6 - 0
web/routes/routes.go

@@ -36,6 +36,7 @@ func Configure(b *bootstrap.Bootstrapper) {
 	backstageService := services.NewBackstageService()
 	managerService := services.NewManagerService()
 	groupService := services.NewGroupService()
+	versionService := services.NewVersionService()
 
 	//CSRF相关
 	b.Use(middleware.SetCsrf)
@@ -238,4 +239,9 @@ func Configure(b *bootstrap.Bootstrapper) {
 	groupCM.Register(groupService)
 	groupCM.Router.Use(middleware.SessionsBackstageAuth)
 	groupCM.Handle(new(backstage.GroupBs))
+
+	versionCM := mvc.New(b.Party("/api/backstage/version"))
+	versionCM.Register(versionService)
+	versionCM.Router.Use(middleware.SessionsBackstageAuth)
+	versionCM.Handle(new(backstage.VersionBs))
 }

+ 16 - 1
web/viewmodels/version.go

@@ -1,14 +1,29 @@
 /*
- * @description:
+ * @description: 版本号
  * @Author: CP
  * @Date: 2021-02-02 11:20:56
  * @FilePath: \construction_management\web\viewmodels\version.go
  */
 package viewmodels
 
+import validation "github.com/go-ozzo/ozzo-validation/v3"
+
 type Version struct {
 	Id         string `form:"id" json:"id" `
 	Name       string `form:"name" json:"name" `
 	CreateTime string `form:"createTime" json:"createTime" `
 	Content    string `form:"content" json:"content" `
 }
+
+func (l Version) ValidateAdd() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.Name, validation.Required.Error("版本号不能为空")),
+		validation.Field(&l.Content, validation.Required.Error("详情不能为空")),
+	)
+}
+
+func (l Version) ValidateDel() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
+	)
+}