123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- /*
- * @description:层级文件夹数据操作相关
- * @Author: CP
- * @Date: 2020-09-11 14:43:58
- * @FilePath: \construction_management\services\folder_service.go
- */
- package services
- import (
- "log"
- "strconv"
- "time"
- "github.com/kataras/iris/v12"
- "go.mod/comm"
- "go.mod/conf"
- "go.mod/dao"
- "go.mod/datasource"
- "go.mod/models"
- "go.mod/web/viewmodels"
- )
- //定义项目Service接口
- type FoldertService interface {
- //ValidManager(code string, account string, password string) error
- ValidRule(ctx iris.Context) (viewmodels.Folder, error)
- Create(data viewmodels.Folder) error
- GetAllProject(int) []viewmodels.Folder
- }
- //返回service操作类
- type foldertService struct {
- dao *dao.FolderDao
- }
- //创建项目service
- func NewFoldertService() FoldertService {
- return &foldertService{
- dao: dao.NewFolderDao(datasource.InstanceDbMaster()),
- }
- }
- // 文件夹规则验证
- func (s *foldertService) ValidRule(ctx iris.Context) (viewmodels.Folder, error) {
- folderVaild := viewmodels.Folder{}
- err := ctx.ReadForm(&folderVaild)
- if err != nil {
- log.Println("folder-ValidRule-ReadForm转换异常, error=", err)
- return folderVaild, err
- }
- err = folderVaild.Validate()
- if err != nil {
- log.Println("文件夹验证, error=", err)
- return folderVaild, err
- }
- return folderVaild, nil
- }
- // 获得项目文件夹相关
- func (s *foldertService) GetAllProject(projectId int) []viewmodels.Folder {
- datalist := s.dao.GetAllProject(projectId)
- folderlist := make([]viewmodels.Folder, 0)
- for _, data := range datalist {
- folder := viewmodels.Folder{}
- //folder.Id = comm.Encrypt([]byte(conf.SignSecret), []byte(strconv.Itoa(data.Id)))
- id, _ := comm.AesEncrypt(strconv.Itoa(data.Id), conf.SignSecret)
- parentId, _ := comm.AesEncrypt(strconv.Itoa(data.ParentId), conf.SignSecret)
- projectId, _ := comm.AesEncrypt(strconv.Itoa(data.ProjectId), conf.SignSecret)
- folder.Id = id
- folder.Name = data.Name
- folder.ParentId = parentId
- folder.ProjectId = projectId
- folderlist = append(folderlist, folder)
- }
- return folderlist
- }
- // 新增一个文件夹
- func (s *foldertService) Create(data viewmodels.Folder) error {
- //now := comm.NowUnix()
- //comm.FormatFromUnixTime(now)
- folder := models.CmFolder{}
- folder.Name = data.Name
- ProjectId, err := strconv.Atoi(data.ProjectId)
- if err != nil {
- return err
- }
- ParentIdInt := 0
- if data.ParentId != "" {
- ParentId, err := comm.AesDecrypt(data.ParentId, conf.SignSecret)
- if err != nil {
- return err
- }
- ParentIdInt, err = strconv.Atoi(ParentId)
- if err != nil {
- ParentIdInt = 0
- }
- }
- folder.ProjectId = ProjectId
- folder.ParentId = ParentIdInt
- folder.CreateTime = time.Now()
- folder.UpdateTime = time.Now()
- err = s.dao.Create(&folder)
- if err != nil {
- return err
- }
- return nil
- }
|