outbound_detail.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type OutboundDetail struct {
  4. Id int64 `json:"id"`
  5. OutboundId int64 `json:"outboundId"`
  6. GoodsId int64 `json:"goodsId"`
  7. GoodsName string `json:"goodsName"`
  8. Specs string `json:"specs"`
  9. Producer string `json:"producer"`
  10. BatchNumber string `json:"batchNumber"`
  11. Price int32 `json:"price"`
  12. Unit pasturePb.Unit_Kind `json:"unit"`
  13. UnitName string `json:"unitName"`
  14. Quantity int32 `json:"quantity"`
  15. IsDelete pasturePb.IsShow_Kind `json:"isDelete"`
  16. CreatedAt int64 `json:"createdAt"`
  17. UpdatedAt int64 `json:"updatedAt"`
  18. }
  19. func (o *OutboundDetail) TableName() string {
  20. return "outbound_detail"
  21. }
  22. func NewOutboundDetailList(outboundId int64, req []*pasturePb.OutboundApplyGoodsItem, unitMap map[pasturePb.Unit_Kind]string) []*OutboundDetail {
  23. res := make([]*OutboundDetail, 0)
  24. for _, v := range req {
  25. unitName := ""
  26. if unit, ok := unitMap[v.Unit]; ok {
  27. unitName = unit
  28. }
  29. res = append(res, &OutboundDetail{
  30. OutboundId: outboundId,
  31. GoodsId: int64(v.GoodsId),
  32. GoodsName: v.GoodsName,
  33. Specs: v.Specs,
  34. Producer: v.Producer,
  35. BatchNumber: v.BatchNumber,
  36. Price: int32(v.Price * 100),
  37. Unit: v.Unit,
  38. UnitName: unitName,
  39. Quantity: int32(v.Quantity),
  40. IsDelete: pasturePb.IsShow_Ok,
  41. })
  42. }
  43. return res
  44. }
  45. type OutboundDetailSlice []*OutboundDetail
  46. func (o OutboundDetailSlice) ToPB() []*pasturePb.OutboundApplyGoodsItem {
  47. res := make([]*pasturePb.OutboundApplyGoodsItem, len(o))
  48. for i, v := range o {
  49. res[i] = &pasturePb.OutboundApplyGoodsItem{
  50. GoodsId: int32(v.GoodsId),
  51. GoodsName: v.GoodsName,
  52. Specs: v.Specs,
  53. Producer: v.Producer,
  54. BatchNumber: v.BatchNumber,
  55. Price: float32(v.Price) / 100,
  56. Unit: v.Unit,
  57. Quantity: uint32(v.Quantity),
  58. }
  59. }
  60. return res
  61. }