123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /*
- * @description: 项目相关数据处理
- * @Author: CP
- * @Date: 2020-09-04 14:42:27
- * @FilePath: \construction_management\services\project_service.go
- */
- package services
- import (
- "log"
- "strconv"
- "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 ProjectService interface {
- //ValidManager(code string, account string, password string) error
- ValidRule(iris.Context) (viewmodels.Project, error)
- Get(*viewmodels.Project)
- GetList(viewmodels.Project) []viewmodels.Project
- }
- //返回service操作类
- type projectService struct {
- dao *dao.ProjectDao
- }
- //创建项目service
- func NewProjectService() ProjectService {
- return &projectService{
- dao: dao.NewProjectDao(datasource.InstanceDbMaster()),
- }
- }
- // 验证项目项的内容
- func (s *projectService) ValidRule(ctx iris.Context) (viewmodels.Project, error) {
- projectVaild := viewmodels.Project{}
- err := ctx.ReadForm(&projectVaild)
- if err != nil {
- log.Println("project-ValidRule-ReadForm转换异常, error=", err)
- return projectVaild, err
- }
- err = projectVaild.Validate()
- if err != nil {
- log.Println("项目信息验证, error=", err)
- return projectVaild, err
- }
- return projectVaild, nil
- }
- // 获得单个项目信息-ID 编号
- func (s *projectService) Get(projectVM *viewmodels.Project) {
- projectCM := models.CmProject{}
- // 项目ID或编号
- if projectVM.Id == "" && projectVM.Code == "" {
- projectVM.Id = "0"
- return
- //return errors.New("项目ID或者项目编号不存在")
- }
- if projectVM.Id != "" {
- projectId, err := comm.AesDecrypt(projectVM.Id, conf.SignSecret)
- if err != nil {
- projectVM.Id = "0"
- return
- }
- projectIdInt, err := strconv.Atoi(projectId)
- if err != nil {
- projectVM.Id = "0"
- return
- }
- if projectIdInt != 0 {
- projectCM.Id = projectIdInt
- }
- } else if projectVM.Code != "" {
- projectCM.Code = projectVM.Code
- } else {
- projectVM.Id = "0"
- return
- }
- s.dao.Get(&projectCM)
- if projectCM.Id != 0 {
- // 项目信息补充完整
- projectB := makeProjectVM(projectCM)
- projectVM = &projectB
- } else {
- projectVM.Id = "0"
- return
- }
- }
- // 获得一组项目信息 -项目编号
- func (s *projectService) GetList(projectVM viewmodels.Project) []viewmodels.Project {
- datalist := make([]viewmodels.Project, 0)
- // 项目编号
- if projectVM.Code != "" {
- projectData := s.dao.GetListByCode(projectVM.Code)
- for _, data := range projectData {
- projectVM = makeProjectVM(data)
- datalist = append(datalist, projectVM)
- }
- return datalist
- }
- return datalist
- }
- // 构造视图层models
- func makeProjectVM(projectCM models.CmProject) viewmodels.Project {
- projectVM := viewmodels.Project{}
- id, _ := comm.AesEncrypt(strconv.Itoa(projectCM.Id), conf.SignSecret)
- projectVM.Id = id
- projectVM.Code = projectCM.Code
- projectVM.Name = projectCM.Name
- return projectVM
- }
|