goods.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package backend
  2. import (
  3. "context"
  4. "fmt"
  5. "kpt-pasture/model"
  6. "net/http"
  7. "gitee.com/xuyiping_admin/pkg/xerr"
  8. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  9. )
  10. func (s *StoreEntry) DrugsList(ctx context.Context, req *pasturePb.SearchDrugsRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchDrugsResponse, error) {
  11. drugsList := make([]*model.Drugs, 0)
  12. var count int64 = 0
  13. pref := s.DB.Model(new(model.Drugs))
  14. if req.Name != "" {
  15. pref.Where("name like ?", fmt.Sprintf("%s%s%s", "%", req.Name, "%"))
  16. }
  17. if req.Usage > 0 {
  18. pref.Where("usage_method = ?", req.Usage)
  19. }
  20. if req.CategoryId > 0 {
  21. pref.Where("category_id = ?", req.CategoryId)
  22. }
  23. if err := pref.Order("id desc").Count(&count).Limit(int(pagination.PageSize)).Offset(int(pagination.PageOffset)).
  24. Find(&drugsList).Error; err != nil {
  25. return nil, xerr.WithStack(err)
  26. }
  27. drugsCategoryMap := DrugCategoryMap
  28. systemUserList, _ := s.SystemUserList(ctx)
  29. unitMap := UnitMap
  30. drugUsageMap := DrugUsageMap
  31. return &pasturePb.SearchDrugsResponse{
  32. Code: http.StatusOK,
  33. Message: "ok",
  34. Data: &pasturePb.SearchDrugsData{
  35. List: model.DrugsSlice(drugsList).ToPB(systemUserList, drugsCategoryMap, unitMap, drugUsageMap),
  36. Total: int32(count),
  37. PageSize: pagination.PageSize,
  38. Page: pagination.Page,
  39. },
  40. }, nil
  41. }
  42. func (s *StoreEntry) DrugsCreate(ctx context.Context, req *pasturePb.SearchDrugsList) error {
  43. currentUser, _ := s.GetCurrentSystemUser(ctx)
  44. newDrugs := model.NewDrugs(req, currentUser)
  45. if req.Id <= 0 {
  46. if err := s.DB.Create(newDrugs).Error; err != nil {
  47. return xerr.WithStack(err)
  48. }
  49. } else {
  50. if err := s.DB.Where("id = ?", req.Id).Updates(newDrugs).Error; err != nil {
  51. return xerr.WithStack(err)
  52. }
  53. }
  54. return nil
  55. }