statis.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package manager
  2. import (
  3. "reflect"
  4. "time"
  5. "zhiyuan/pkg/app"
  6. orderParam "zhiyuan/pkg/param/order"
  7. "zhiyuan/pkg/utils"
  8. "zhiyuan/services/admin"
  9. "zhiyuan/services/aftersale/order"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func StatisOrder(c *gin.Context) {
  13. data := map[string]interface{}{}
  14. orderBaseMap := map[string]interface{}{
  15. "deleted_at": 0,
  16. }
  17. leaderIds, _ := admin.GetAdminByDataAuth(c.GetInt("adminID"))
  18. if !reflect.DeepEqual(leaderIds, []int{-1}) {
  19. orderBaseMap["leader in"] = leaderIds
  20. }
  21. dayDate := utils.GetZeroTime(time.Now()).Unix()
  22. data["day_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"created_at >": dayDate}, orderBaseMap))
  23. data["confirm"], _ = order.Count(utils.MergeMap(map[string]interface{}{"state": orderParam.State.Allotted.ID}, orderBaseMap))
  24. data["repairing"], _ = order.Count(utils.MergeMap(map[string]interface{}{"if(state=90,90,if(is_force=0,state,100)) in": []int{
  25. orderParam.State.Suspending.ID,
  26. orderParam.State.Repairing.ID,
  27. orderParam.State.SupConfirmed.ID,
  28. orderParam.State.Confirmed.ID,
  29. }}, orderBaseMap))
  30. data["repaired"], _ = order.Count(utils.MergeMap(map[string]interface{}{"if(state=90,90,if(is_force=0,state,100)) in ": []int{
  31. orderParam.State.Repaired.ID,
  32. orderParam.State.Completed.ID,
  33. orderParam.State.ForceCompleted.ID,
  34. }}, orderBaseMap))
  35. data["total"], _ = order.Count(orderBaseMap)
  36. data["unfinished"] = data["total"].(int64) - data["repaired"].(int64)
  37. app.Success(c, data)
  38. }