statis.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package servicer
  2. import (
  3. "time"
  4. "zhiyuan/pkg/app"
  5. "zhiyuan/pkg/db"
  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. orderBaseMap := map[string]interface{}{
  14. "deleted_at": 0,
  15. }
  16. if adminInfo := admin.GetAdminCache(c.GetInt("adminID")); adminInfo.SiteID > 0 {
  17. orderBaseMap["site_id"] = adminInfo.SiteID
  18. }
  19. data := map[string]interface{}{}
  20. dayDate := utils.GetZeroTime(time.Now()).Unix()
  21. data["day_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"created_at between": []interface{}{dayDate, dayDate + 86399}}, orderBaseMap))
  22. data["created"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "state": orderParam.State.Created.ID}, orderBaseMap))
  23. data["allotted"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "state in": []int{
  24. orderParam.State.Checked.ID,
  25. orderParam.State.Suspending.ID,
  26. }}, orderBaseMap))
  27. data["repairing"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "if(state=90,90,if(is_force=0,state,100)) in": []int{
  28. orderParam.State.Allotted.ID,
  29. orderParam.State.Repairing.ID,
  30. orderParam.State.SupConfirmed.ID,
  31. orderParam.State.Repaired.ID,
  32. orderParam.State.Confirmed.ID,
  33. }}, orderBaseMap))
  34. data["completed"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "if(state=90,90,if(is_force=0,state,100)) in ": []int{
  35. orderParam.State.Completed.ID,
  36. orderParam.State.ForceCompleted.ID,
  37. }}, orderBaseMap))
  38. data["visit_num"], _ = db.GetQueryCount("SELECT o.* FROM zy_as_order o LEFT JOIN zy_as_order_visit v ON o.id=v.order_id AND v.deleted_at=0 WHERE o.deleted_at=0 AND (v.visit_time between {{mindate}} and {{maxdate}}) AND v.state=1 group by o.id", map[string]interface{}{
  39. "mindate": dayDate,
  40. "maxdate": dayDate + 86399,
  41. }, nil)
  42. //data["visit_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "recent_visit_time between": []interface{}{dayDate, dayDate + 86399}}, orderBaseMap))
  43. app.Success(c, data)
  44. }
  45. func StatisRepair(c *gin.Context) {
  46. orderBaseMap := map[string]interface{}{
  47. "audit_type !=": 0,
  48. }
  49. data := map[string]interface{}{}
  50. data["all"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{}, orderBaseMap))
  51. data["state0"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 0}, orderBaseMap))
  52. data["state1"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 1}, orderBaseMap))
  53. data["state2"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 2}, orderBaseMap))
  54. app.Success(c, data)
  55. }
  56. func StatisExtension(c *gin.Context) {
  57. orderBaseMap := map[string]interface{}{}
  58. data := map[string]interface{}{}
  59. data["all"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{}, orderBaseMap))
  60. data["state0"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 0}, orderBaseMap))
  61. data["state1"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 1}, orderBaseMap))
  62. data["state2"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 2}, orderBaseMap))
  63. app.Success(c, data)
  64. }