contract.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package controller
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "github.com/gogf/gf/v2/frame/g"
  6. v1 "personnelBehavior/api/hello/v1"
  7. "personnelBehavior/internal/model"
  8. "personnelBehavior/internal/service"
  9. "personnelBehavior/internal/utils"
  10. "time"
  11. )
  12. var (
  13. Contract = contract{}
  14. )
  15. type contract struct{}
  16. func (c *contract) Insert(ctx context.Context, req *v1.ContractInsertReq) (res *utils.ResponseRes, err error) {
  17. //参数判断
  18. if utils.ExistsSpecialLetters(req.PageName) {
  19. g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Cannot contain special characters"))
  20. return nil, err
  21. }
  22. if g.IsEmpty(req.ChainName) {
  23. g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Public chain name is empty"))
  24. return nil, err
  25. }
  26. //判断表是否存在
  27. err = service.Contract().IsExists(ctx, req.ChainName)
  28. if err != nil {
  29. //新建表
  30. err = service.Contract().CreateTable(ctx, req.ChainName)
  31. if err != nil {
  32. //新建表 失败
  33. g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Create table failed"))
  34. return nil, err
  35. }
  36. }
  37. var in model.ContractInsertInput
  38. in.ActionId = req.ActionId
  39. in.ActionType = req.ActionType
  40. in.BreakerId = req.BreakerId
  41. in.BreakerName = req.BreakerName
  42. in.OrderId = req.OrderId
  43. in.OrderTime = req.OrderTime
  44. in.PayTime = req.PayTime
  45. in.PayWay = req.PayWay
  46. in.Price = req.Price
  47. in.Product = req.Product
  48. in.PageId = req.PageId
  49. in.PageName = req.PageName
  50. in.Desc = req.Desc
  51. in.Source = req.Source
  52. session := model.UserSessionCtx.Get(ctx).JySession
  53. if session.MgoUserId != "" {
  54. in.UserId = session.UserId
  55. in.PositionId = session.PositionId
  56. in.Phone = session.Phone
  57. }
  58. in.Date = time.Now().Unix()
  59. //浏览器信息
  60. r := g.RequestFromCtx(ctx).Request
  61. in.Ip = common.GetIp(r)
  62. in.Url = r.Referer()
  63. userAgent := utils.GetUserAgentInfo(r)
  64. in.Browser = userAgent.BrowserName
  65. in.BrowserVersion = userAgent.BrowserVersion
  66. in.Os = userAgent.OsName
  67. in.OsVersion = userAgent.OsVersion
  68. in.Platform = userAgent.Platform
  69. in.UserAgent = r.UserAgent()
  70. err = service.Contract().InsertRecords(ctx, in, req.ChainName)
  71. if err != nil {
  72. utils.OK.WithMsg(err.Error())
  73. }
  74. g.RequestFromCtx(ctx).Response.WriteJson(utils.OK)
  75. return
  76. }