Go项目(用户操作微服务)
创始人
2024-05-31 10:15:48
0

简介

  • 用户留言、收藏、修改收货地址等,统一放在用户操作微服务
  • 这里按照业务类型划分微服务
  • 表设计,三张表
    // 用户收藏
    type UserFav struct {BaseModel// 联合索引 idx_user_goods,且唯一User  int32 `gorm:"type:int;index:idx_user_goods,unique"`Goods int32 `gorm:"type:int;index:idx_user_goods,unique"`
    }
    
  • 建库生成表
  • 设计 proto 文件,生成 stub,这里没放在一起,生成三个 stub
    • 之前有多个 stub 是因为服务间调用
  • 更改配置,启动服务并注册
    • 更改 nacos 即可,config 不需要增加配置项
      type ServerConfig struct{Name string `mapstructure:"name" json:"name"`Host string `mapstructure:"host" json:"host"`Tags []string `mapstructure:"tags" json:"tags"`MysqlInfo MysqlConfig `mapstructure:"mysql" json:"mysql"`ConsulInfo ConsulConfig `mapstructure:"consul" json:"consul"`
      }
      
    • 这里 grpc 需要注册三个 handler 到 server,再注册服务到 consul,这就是多个 stub 不一样的地方

handler

  • srv 层实现,handler/
  • 贴一个接口实现吧,没什么新东西
    func (*UserOpServer) GetFavList(ctx context.Context, req *proto.UserFavRequest) (*proto.UserFavListResponse, error) {var rsp proto.UserFavListResponsevar userFavs []model.UserFavvar userFavList []*proto.UserFavResponse//查询用户的收藏记录//这里还定义了goodsId为参数,可以查询某件商品被哪些用户收藏了,此时不传userId即可result := global.DB.Where(&model.UserFav{User: req.UserId, Goods: req.GoodsId}).Find(&userFavs)rsp.Total = int32(result.RowsAffected)for _, userFav := range userFavs {userFavList = append(userFavList, &proto.UserFavResponse{UserId:  userFav.User,GoodsId: userFav.Goods,})}rsp.Data = userFavListreturn &rsp, nil
    }
    

web

  • API 层实现,api/
  • 要调用多个 srv 层,把 stub 拿过来
  • 定义 form 表单,接收 POST 参数;更改 nacos 配置,启动,注册
  • 没什么特殊的地方,有个 TODO
    • 收藏商品时,应该先去判断这个商品是否存在
  • 没啥好说的,看代码

小结

  • 准备前后端联调,接口打通,为多机部署做准备

相关内容

热门资讯

春节期间就地过年也成为了常态,... 春节期间就地过年也成为了常态,怎么缓解思乡这个问题呢?其实现在科技这么发达,身在异乡多和家人视频聊天...
和胜股份:推动高端工业铝合金材... 和胜股份(维权)(002824)发布公告,2025年7月8日举行了投资者关系活动,主要内容围绕其在新...
中仑新材:2025年二季度业绩... 投资者提问:董秘您好,现在是中报的节点,能预先透露下二季度业绩是增是减吗?董秘回答(中仑新材SZ30...
迪瑞医疗:公司信息披露严格按法... 投资者提问:董秘,华润7月27日到期了,剩下不到20天,过户完成快点出公告董秘回答(迪瑞医疗SZ30...
投资者提问:三元电池已步入结构... 投资者提问:三元电池已步入结构性淘汰,公司如何面对!董秘回答(中伟股份SZ300919):尊敬的投资...
往事如烟灭的意思? 往事如烟灭的意思?往事如烟灭的意思?往事不堪回首往事象云烟一般消散得没有踪迹。使用这话表现出作者有怀...
中瓷电子:因商业保护不便透露光... 投资者提问:在光通信领域,公司与天孚通信,联特科技,剑桥科技,或者英伟达,有没有业务往来?谢谢董秘回...
太辰光今日大宗交易折价成交14... 7月8日,太辰光大宗交易成交148.61万股,成交额1.24亿元,占当日总成交额的4.28%,成交价...
新基石青少年科学素质提升项目在... 中国教育报-中国教育新闻网讯(记者 任朝霞)近日,一场别开生面的“奇妙天文夜”活动在上海天文馆(上海...
华工科技今日大宗交易折价成交4... 7月8日,华工科技大宗交易成交40万股,成交额1600.8万元,占当日总成交额的0.96%,成交价4...