project_account_service.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * @description:项目用户相关数据处理
  3. * @Author: CP
  4. * @Date: 2020-08-27 17:23:58
  5. * @FilePath: \construction_management\services\project_account_service.go
  6. */
  7. package services
  8. import (
  9. "log"
  10. "strconv"
  11. "github.com/kataras/iris/v12"
  12. "go.mod/comm"
  13. "go.mod/conf"
  14. "go.mod/models"
  15. "go.mod/web/viewmodels"
  16. "go.mod/dao"
  17. "go.mod/datasource"
  18. )
  19. //定义项目用户Service接口
  20. type ProjectAccountService interface {
  21. ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error)
  22. Save(viewAccount viewmodels.ProjectAccount, in int) error
  23. Get(id int) *viewmodels.ProjectAccount
  24. }
  25. //返回service操作类
  26. type projectAccountService struct {
  27. dao *dao.ProjectAccountDao
  28. }
  29. //创建项目用户service
  30. func NewProjectAccountService() ProjectAccountService {
  31. return &projectAccountService{
  32. dao: dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
  33. }
  34. }
  35. // 获得一个项目用户
  36. func (s *projectAccountService) Get(id int) *viewmodels.ProjectAccount {
  37. modelsAccount := s.dao.Get(id)
  38. viewAccountData := viewmodels.ProjectAccount{}
  39. if modelsAccount.Id == 0 {
  40. viewAccountData.Id = "0"
  41. return &viewAccountData
  42. }
  43. aesId, _ := comm.AesEncrypt(strconv.Itoa(modelsAccount.Id), conf.SignSecret)
  44. aesProjectId, _ := comm.AesEncrypt(strconv.Itoa(modelsAccount.ProjectId), conf.SignSecret)
  45. viewAccountData.Id = aesId
  46. viewAccountData.ProjectId = aesProjectId
  47. viewAccountData.Account = modelsAccount.Account
  48. viewAccountData.Name = modelsAccount.Name
  49. viewAccountData.Company = modelsAccount.Company
  50. viewAccountData.Role = modelsAccount.Role
  51. viewAccountData.Mobile = modelsAccount.Mobile
  52. viewAccountData.Telephone = modelsAccount.Telephone
  53. return &viewAccountData
  54. }
  55. // 用户规则验证
  56. func (s *projectAccountService) ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error) {
  57. accountVaild := viewmodels.ProjectAccount{}
  58. err := ctx.ReadForm(&accountVaild)
  59. if err != nil {
  60. log.Println("account-ValidRule-ReadForm转换异常, error=", err)
  61. return accountVaild, err
  62. }
  63. err = accountVaild.Validate()
  64. if err != nil {
  65. log.Println("用户验证, error=", err)
  66. return accountVaild, err
  67. }
  68. return accountVaild, nil
  69. }
  70. // 保存用户信息
  71. func (s *projectAccountService) Save(viewAccount viewmodels.ProjectAccount, id int) error {
  72. account := models.CmProjectAccount{}
  73. account.Id = id
  74. account.Name = viewAccount.Name
  75. account.Company = viewAccount.Company
  76. account.Role = viewAccount.Role
  77. account.Mobile = viewAccount.Mobile
  78. account.Telephone = viewAccount.Telephone
  79. err := s.dao.Update(&account, []string{"Name", "Company", "Role", "Mobile", "Telephone"})
  80. return err
  81. }