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
    • 收藏商品时,应该先去判断这个商品是否存在
  • 没啥好说的,看代码

小结

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

相关内容

热门资讯

追求自我,解放自我,表达自我 作者:Odysseus两周前我本以为,如果PCE和关税都比较乐观,市场的情绪可能在CPI之前就会有端...
688596,筹划重要收购! 7月8日,正帆科技(688596)公告,拟以现金方式购买汉京半导体5名股东持有的62.23%股权,交...
豪鹏科技:预计2025年上半年... 豪鹏科技(SZ 001283,收盘价:59.48元)7月8日晚间发布业绩预告,预计2025年上半年归...
一个小男孩打水漂打出一个大漩涡... 一个小男孩打水漂打出一个大漩涡,是什么电影。《鬼吹灯之寻龙诀》根据天下霸唱所著盗墓小说《鬼吹灯》的后...
脂质体原料技术暗战: 国际大牌... 脂质体原料技术暗战:国际大牌靠德国隐形冠军,国货替代看西安艾尔菲西安市生物技术化妆品原料工程技术研究...
德展健康已回购6544万股 金... 7月8日,德展健康(000813)发布公告,截至2025年7月7日,公司已回购6544万股,占总股本...
悬赏总额最高2650万元,江苏... 转自:扬子晚报江苏省苏州市中级人民法院悬赏公告(2025)苏05执1025号本院在执行申请执行人蒯某...
筑牢儿童安全屏障需系统性反思问... 来源:@第一财经日报微博 #血铅中毒事件不该止于8人被拘...
*ST步森:秦本平任总经理 阚... *ST步森(维权)(002569)发布公告,公司于2025年7月8日召开第七届董事会第一次会议,审议...
2025年川籍农民工家庭留守儿... 转自:四川在线四川在线记者 刘春华7月8日上午,遂宁市第六中学初三年级学生李翔斌怀着激动的心情,登上...