talent_bank.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package youngee_talent_service
  2. import (
  3. "context"
  4. "youngmini_server/app/dao"
  5. "youngmini_server/app/model/youngee_talent_model"
  6. "youngmini_server/app/utils"
  7. "github.com/gogf/gf/database/gdb"
  8. "github.com/gogf/gf/frame/g"
  9. "github.com/gogf/gf/net/ghttp"
  10. )
  11. func GetTalentBankInfo(r *ghttp.Request) *TalentHttpResult {
  12. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  13. if err != nil {
  14. return &TalentHttpResult{Code: -1, Msg: "Get talent info failed"}
  15. }
  16. res, err := g.DB().Model(dao.YounggeeTalentBank.Table).Where("talent_id = ?", tid).One()
  17. if err != nil {
  18. return &TalentHttpResult{Code: -2, Msg: err.Error()}
  19. }
  20. return &TalentHttpResult{Code: 0, Msg: "success", Data: res}
  21. }
  22. func OnAddTalentBank(r *ghttp.Request) *TalentHttpResult {
  23. tid, err := utils.SessionTalentInfo.GetTalentIdFromSession(r)
  24. if err != nil {
  25. return &TalentHttpResult{Code: -1, Msg: "Add talent address failed"}
  26. }
  27. tBank := youngee_talent_model.TalentBankInfo{}
  28. err = r.ParseForm(&tBank)
  29. if err != nil {
  30. return &TalentHttpResult{Code: -2, Msg: err.Error()}
  31. }
  32. // 更新
  33. err = g.DB().Transaction(context.TODO(), func(ctx context.Context, tx *gdb.TX) error {
  34. var tErr error
  35. // 判断是否已经绑定
  36. res, err := g.DB().Model(dao.YoungeeTalentInfo.Table).Fields("is_bind_bank").Where("id = ?", tid).Value()
  37. if err != nil {
  38. return err
  39. }
  40. if res.Int64() == 0 { // 新增
  41. // 将达人id存入结构体
  42. tBank.TalentId = tid
  43. // 插入提现绑定信息
  44. _, tErr = tx.Ctx(ctx).Model(dao.YounggeeTalentBank.Table).Insert(tBank)
  45. if tErr != nil {
  46. return tErr
  47. }
  48. } else { // 更新
  49. // 将达人id存入结构体
  50. tBank.TalentId = tid
  51. // 更新提现绑定信息
  52. _, tErr = tx.Ctx(ctx).Model(dao.YounggeeTalentBank.Table).Update(tBank, "talent_id", tid)
  53. if tErr != nil {
  54. return tErr
  55. }
  56. }
  57. _, tErr = tx.Ctx(ctx).Model(dao.YoungeeTalentInfo.Table).Data("is_bind_bank", 1).Where("id", tid).Update()
  58. if tErr != nil {
  59. return tErr
  60. }
  61. return nil
  62. })
  63. if err != nil {
  64. return &TalentHttpResult{Code: -3, Msg: err.Error()}
  65. }
  66. return &TalentHttpResult{Code: 0, Msg: "success"}
  67. }