package controller import ( "app.yhyue.com/moapp/jybase/common" "context" "github.com/gogf/gf/v2/frame/g" v1 "personnelBehavior/api/hello/v1" "personnelBehavior/internal/model" "personnelBehavior/internal/service" "personnelBehavior/internal/utils" "time" ) var ( Contract = contract{} ) type contract struct{} func (c *contract) Insert(ctx context.Context, req *v1.ContractInsertReq) (res *utils.ResponseRes, err error) { //参数判断 if utils.ExistsSpecialLetters(req.PageName) { g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Cannot contain special characters")) return nil, err } if g.IsEmpty(req.ChainName) { g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Public chain name is empty")) return nil, err } //判断表是否存在 err = service.Contract().IsExists(ctx, req.ChainName) if err != nil { //新建表 err = service.Contract().CreateTable(ctx, req.ChainName) if err != nil { //新建表 失败 g.RequestFromCtx(ctx).Response.WriteJson(utils.Err.WithMsg("Create table failed")) return nil, err } } var in model.ContractInsertInput in.ActionId = req.ActionId in.ActionType = req.ActionType in.BreakerId = req.BreakerId in.BreakerName = req.BreakerName in.OrderId = req.OrderId in.OrderTime = req.OrderTime in.PayTime = req.PayTime in.PayWay = req.PayWay in.Price = req.Price in.Product = req.Product in.PageId = req.PageId in.PageName = req.PageName in.Desc = req.Desc in.Source = req.Source session := model.UserSessionCtx.Get(ctx).JySession if session.MgoUserId != "" { in.UserId = session.UserId in.PositionId = session.PositionId in.Phone = session.Phone } in.Date = time.Now().Unix() //浏览器信息 r := g.RequestFromCtx(ctx).Request in.Ip = common.GetIp(r) in.Url = r.Referer() userAgent := utils.GetUserAgentInfo(r) in.Browser = userAgent.BrowserName in.BrowserVersion = userAgent.BrowserVersion in.Os = userAgent.OsName in.OsVersion = userAgent.OsVersion in.Platform = userAgent.Platform in.UserAgent = r.UserAgent() err = service.Contract().InsertRecords(ctx, in, req.ChainName) if err != nil { utils.OK.WithMsg(err.Error()) } g.RequestFromCtx(ctx).Response.WriteJson(utils.OK) return }