app_permit_repo.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package system
  2. import (
  3. "fmt"
  4. "log"
  5. "time"
  6. "xorm.io/xorm"
  7. "xps/datamodels"
  8. "xps/viewmodels"
  9. )
  10. type AppPermitRepo struct {
  11. engine *xorm.Engine
  12. }
  13. // New Instance
  14. func NewAppPermitRepo(engine *xorm.Engine) *AppPermitRepo {
  15. return &AppPermitRepo{
  16. engine: engine,
  17. }
  18. }
  19. func (d *AppPermitRepo) GetByList(appKey string, roleId int64, keywords string) []viewmodels.AppPermitInfo {
  20. var datalist = make([]viewmodels.AppPermitInfo, 0)
  21. sqlSelect := `SELECT A.app_id,
  22. A.role_id,
  23. A.permit_id,
  24. A.permit_title,
  25. A.permit_code,
  26. A.permit_desc,
  27. A.permit_type,
  28. A.root_id,
  29. A.parent_id,
  30. A.sort_no
  31. `
  32. sqlFrom := `FROM app_permit AS A
  33. JOIN app AS B ON (A.app_id = B.app_id)
  34. `
  35. sqlWhere := `WHERE A.deleted_flag = 0
  36. AND B.app_key = '` + appKey + "'"
  37. if keywords != "" {
  38. sqlWhere += ` AND A.role_id = ` + fmt.Sprintf("%d", roleId)
  39. }
  40. if keywords != "" {
  41. sqlWhere += ` AND A.permit_title like ` + "'%" + keywords + "%'"
  42. }
  43. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  44. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  45. if err != nil {
  46. log.Fatal(err)
  47. }
  48. return datalist
  49. }
  50. // Delete
  51. func (d *AppPermitRepo) Delete(ocId int64, groupTypeId int64) error {
  52. data := &datamodels.AppPermit{DeletedFlag: 1, DeletedAt: time.Now()}
  53. _, err := d.engine.Where("oc_id = ?", ocId).Where("group_cat_id = ?", groupTypeId).Update(data)
  54. return err
  55. }
  56. // Update
  57. func (d *AppPermitRepo) Update(ocId int64, groupTypeId int64, data *datamodels.AppPermit) error {
  58. _, err := d.engine.Where("oc_id = ?", ocId).Where("group_cat_id = ?", groupTypeId).Update(data)
  59. return err
  60. }
  61. func (d *AppPermitRepo) Create(data *datamodels.AppPermit) error {
  62. _, err := d.engine.Insert(data)
  63. return err
  64. }