orders_settle.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package service
  2. import (
  3. "gadmin/config"
  4. "gadmin/internal/admin/consts"
  5. "gadmin/internal/admin/forms"
  6. "gadmin/internal/gorm/model"
  7. "gadmin/internal/gorm/query"
  8. "gadmin/utility/serializer"
  9. "github.com/gin-gonic/gin"
  10. )
  11. // OrderSettle 订单
  12. var OrderSettle = new(sOrderSettle)
  13. type sOrderSettle struct{}
  14. func (s *sOrderSettle) List(ctx *gin.Context, req forms.OrderSettleListReq) serializer.Response {
  15. type OrderSettleLstModel struct {
  16. model.OrdersSettle
  17. }
  18. var (
  19. o = query.Use(config.DB).OrdersSettle
  20. m = o.WithContext(ctx)
  21. offset int64 = 0
  22. models forms.OrderSettleListRes
  23. lists []OrderSettleLstModel
  24. )
  25. if len(req.Time) == 2 {
  26. m = m.Where(o.CreatedAt.Between(req.Time[0], req.Time[1]))
  27. }
  28. if req.UserId > 0 {
  29. m = m.Where(o.UserID.Eq(req.UserId))
  30. }
  31. if req.Status > 0 {
  32. m = m.Where(o.Status.Eq(req.Status))
  33. }
  34. if req.OrderSn != "" {
  35. m = m.Where(o.OrderSn.Like("%" + req.OrderSn + "%"))
  36. }
  37. m = m.Order(o.CreatedAt.Desc())
  38. req.Page, req.PerPage, offset = forms.CalculatePage(req.Page, req.PerPage)
  39. count, err := m.Count()
  40. if err != nil {
  41. return serializer.Err(consts.CodeParamErr, "查询出错 count", err)
  42. }
  43. if count > 0 {
  44. // 列表展示
  45. if err = m.Limit(int(req.PerPage)).Offset(int(offset)).Scan(&lists); err != nil {
  46. return serializer.Err(consts.CodeParamErr, "查询出错 lists", err)
  47. }
  48. }
  49. models.List = lists
  50. models.Page = req.Page
  51. models.PerPage = req.PerPage
  52. models.PageCount = (count + req.PerPage - 1) / req.PerPage
  53. return serializer.Suc(models)
  54. }