addconfiglogic.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package applicationconfig
  4. import (
  5. "context"
  6. "strings"
  7. "udeServer/internal/apierr"
  8. "udeServer/internal/log"
  9. "udeServer/internal/model"
  10. "udeServer/internal/svc"
  11. "udeServer/internal/types"
  12. "github.com/zeromicro/go-zero/core/logx"
  13. )
  14. type AddConfigLogic struct {
  15. logx.Logger
  16. ctx context.Context
  17. svcCtx *svc.ServiceContext
  18. }
  19. // 添加配置
  20. func NewAddConfigLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddConfigLogic {
  21. return &AddConfigLogic{
  22. Logger: logx.WithContext(ctx),
  23. ctx: ctx,
  24. svcCtx: svcCtx,
  25. }
  26. }
  27. func (l *AddConfigLogic) AddConfig(req *types.ConfigAddReq) (*types.ConfigAddResp, error) {
  28. req.ConfigItem = strings.TrimSpace(req.ConfigItem)
  29. if req.ConfigItem == "" {
  30. return nil, apierr.BadRequest("配置项不能为空")
  31. }
  32. if strings.TrimSpace(req.ConfigValue) == "" {
  33. return nil, apierr.BadRequest("配置值不能为空")
  34. }
  35. // 同名配置项查重
  36. existing, err := l.svcCtx.ConfigModel.FindOneByConfigItem(l.ctx, req.ConfigItem)
  37. if err != nil && err != model.ErrNotFound {
  38. log.RecordError(l.ctx, err)
  39. return nil, apierr.New(500, "添加系统配置失败")
  40. }
  41. if existing != nil {
  42. return nil, apierr.BadRequest("已存在同名:[%s]的应用配置项", req.ConfigItem)
  43. }
  44. data := &model.TConfig{
  45. ConfigItem: req.ConfigItem,
  46. ConfigValue: req.ConfigValue,
  47. EditFlag: editFlagAllowEdit, // 新增配置默认允许编辑
  48. Description: nullStr(req.Description),
  49. UpdatedBy: configOperatorName,
  50. }
  51. result, err := l.svcCtx.ConfigModel.Insert(l.ctx, data)
  52. if err != nil {
  53. log.RecordError(l.ctx, err)
  54. return nil, apierr.New(500, "添加系统配置失败")
  55. }
  56. insertId, err := result.LastInsertId()
  57. if err != nil {
  58. log.RecordError(l.ctx, err)
  59. return nil, apierr.New(500, "添加系统配置失败")
  60. }
  61. return &types.ConfigAddResp{Id: insertId}, nil
  62. }