1. message

  1. package handler
  2. import (
  3. "context"
  4. "mxshop_srvs/userop_srv/proto"
  5. "mxshop_srvs/userop_srv/model"
  6. "mxshop_srvs/userop_srv/global"
  7. )
  8. func (*UserOpServer) MessageList(ctx context.Context, req *proto.MessageRequest) (*proto.MessageListResponse, error) {
  9. var rsp proto.MessageListResponse
  10. var messages []model.LeavingMessages
  11. var messageList []*proto.MessageResponse
  12. result := global.DB.Where(&model.LeavingMessages{User:req.UserId}).Find(&messages)
  13. rsp.Total = int32(result.RowsAffected)
  14. for _, message := range messages {
  15. messageList = append(messageList, &proto.MessageResponse{
  16. Id: message.ID,
  17. UserId: message.User,
  18. MessageType: message.MessageType,
  19. Subject: message.Subject,
  20. Message: message.Message,
  21. File: message.File,
  22. })
  23. }
  24. rsp.Data = messageList
  25. return &rsp, nil
  26. }
  27. func (*UserOpServer) CreateMessage(ctx context.Context, req *proto.MessageRequest) (*proto.MessageResponse, error) {
  28. var message model.LeavingMessages
  29. message.User = req.UserId
  30. message.MessageType = req.MessageType
  31. message.Subject = req.Subject
  32. message.Message = req.Message
  33. message.File = req.File
  34. global.DB.Save(&message)
  35. return &proto.MessageResponse{Id:message.ID}, nil
  36. }

2. address

  1. package handler
  2. import (
  3. "context"
  4. "google.golang.org/grpc/codes"
  5. "google.golang.org/grpc/status"
  6. "google.golang.org/protobuf/types/known/emptypb"
  7. "mxshop_srvs/userop_srv/model"
  8. "mxshop_srvs/userop_srv/proto"
  9. "mxshop_srvs/userop_srv/global"
  10. )
  11. func (*UserOpServer) GetAddressList(ctx context.Context, req *proto.AddressRequest) (*proto.AddressListResponse, error) {
  12. var addresses []model.Address
  13. var rsp proto.AddressListResponse
  14. var addressResponse []*proto.AddressResponse
  15. if result := global.DB.Where(&model.Address{User:req.UserId}).Find(&addresses); result.RowsAffected != 0 {
  16. rsp.Total = int32(result.RowsAffected)
  17. }
  18. for _, address := range addresses {
  19. addressResponse = append(addressResponse, &proto.AddressResponse{
  20. Id: address.ID,
  21. UserId: address.User,
  22. Province: address.Province,
  23. City: address.City,
  24. District: address.District,
  25. Address: address.Address,
  26. SignerName: address.SignerName,
  27. SignerMobile:address.SignerMobile,
  28. })
  29. }
  30. rsp.Data = addressResponse
  31. return &rsp, nil
  32. }
  33. func (*UserOpServer) CreateAddress(ctx context.Context, req *proto.AddressRequest) (*proto.AddressResponse, error) {
  34. var address model.Address
  35. address.User = req.UserId
  36. address.Province = req.Province
  37. address.City = req.City
  38. address.District = req.District
  39. address.Address = req.Address
  40. address.SignerName = req.SignerName
  41. address.SignerMobile = req.SignerMobile
  42. global.DB.Save(&address)
  43. return &proto.AddressResponse{Id:address.ID}, nil
  44. }
  45. func (*UserOpServer) DeleteAddress(ctx context.Context, req *proto.AddressRequest) (*emptypb.Empty, error) {
  46. if result := global.DB.Where("id=? and user=?", req.Id, req.UserId).Delete(&model.Address{}); result.RowsAffected == 0{
  47. return nil, status.Errorf(codes.NotFound, "收货地址不存在")
  48. }
  49. return &emptypb.Empty{}, nil
  50. }
  51. func (*UserOpServer) UpdateAddress(ctx context.Context, req *proto.AddressRequest) (*emptypb.Empty, error) {
  52. var address model.Address
  53. if result := global.DB.Where("id=? and user=?", req.Id, req.UserId).First(&address); result.RowsAffected == 0 {
  54. return nil, status.Errorf(codes.NotFound, "购物车记录不存在")
  55. }
  56. if address.Province != "" {
  57. address.Province = req.Province
  58. }
  59. if address.City != "" {
  60. address.City = req.City
  61. }
  62. if address.District != "" {
  63. address.District = req.District
  64. }
  65. if address.Address != "" {
  66. address.Address = req.Address
  67. }
  68. if address.SignerName != "" {
  69. address.SignerName = req.SignerName
  70. }
  71. if address.SignerMobile != "" {
  72. address.SignerMobile = req.SignerMobile
  73. }
  74. global.DB.Save(&address)
  75. return &emptypb.Empty{}, nil
  76. }

3. userfav

  1. package handler
  2. import (
  3. "context"
  4. "google.golang.org/protobuf/types/known/emptypb"
  5. "mxshop_srvs/userop_srv/model"
  6. "google.golang.org/grpc/codes"
  7. "google.golang.org/grpc/status"
  8. "mxshop_srvs/userop_srv/proto"
  9. "mxshop_srvs/userop_srv/global"
  10. )
  11. func (*UserOpServer) GetFavList(ctx context.Context, req *proto.UserFavRequest) (*proto.UserFavListResponse, error) {
  12. var rsp proto.UserFavListResponse
  13. var userFavs []model.UserFav
  14. var userFavList []*proto.UserFavResponse
  15. result := global.DB.Where(&model.UserFav{User:req.UserId, Goods:req.GoodsId}).Find(&userFavs)
  16. rsp.Total = int32(result.RowsAffected)
  17. for _, userFav := range userFavs {
  18. userFavList = append(userFavList, &proto.UserFavResponse{
  19. UserId: userFav.User,
  20. GoodsId: userFav.Goods,
  21. })
  22. }
  23. rsp.Data = userFavList
  24. return &rsp, nil
  25. }
  26. func (*UserOpServer) AddUserFav(ctx context.Context, req *proto.UserFavRequest) (*emptypb.Empty, error) {
  27. var userFav model.UserFav
  28. userFav.User = req.UserId
  29. userFav.Goods = req.GoodsId
  30. global.DB.Save(&userFav)
  31. return &emptypb.Empty{}, nil
  32. }
  33. func (*UserOpServer) DeleteUserFav(ctx context.Context, req *proto.UserFavRequest) (*emptypb.Empty, error) {
  34. if result := global.DB.Unscoped().Where("goods=? and user=?", req.GoodsId, req.UserId).Delete(&model.Address{}); result.RowsAffected == 0{
  35. return nil, status.Errorf(codes.NotFound, "收藏记录不存在")
  36. }
  37. return &emptypb.Empty{}, nil
  38. }
  39. func (*UserOpServer) GetUserFavDetail(ctx context.Context, req *proto.UserFavRequest) (*emptypb.Empty, error) {
  40. var userfav model.UserFav
  41. if result := global.DB.Where("goods=? and user=?", req.GoodsId, req.UserId).Find(userfav); result.RowsAffected == 0{
  42. return nil, status.Errorf(codes.NotFound, "收藏记录不存在")
  43. }
  44. return &emptypb.Empty{}, nil
  45. }