package servicer import ( "time" "zhiyuan/pkg/app" "zhiyuan/pkg/db" orderParam "zhiyuan/pkg/param/order" "zhiyuan/pkg/utils" "zhiyuan/services/admin" "zhiyuan/services/aftersale/order" "github.com/gin-gonic/gin" ) func StatisOrder(c *gin.Context) { orderBaseMap := map[string]interface{}{ "deleted_at": 0, } if adminInfo := admin.GetAdminCache(c.GetInt("adminID")); adminInfo.SiteID > 0 { orderBaseMap["site_id"] = adminInfo.SiteID } data := map[string]interface{}{} dayDate := utils.GetZeroTime(time.Now()).Unix() data["day_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"created_at between": []interface{}{dayDate, dayDate + 86399}}, orderBaseMap)) data["created"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "state": orderParam.State.Created.ID}, orderBaseMap)) data["allotted"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "state in": []int{ orderParam.State.Checked.ID, orderParam.State.Suspending.ID, }}, orderBaseMap)) data["repairing"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "if(state=90,90,if(is_force=0,state,100)) in": []int{ orderParam.State.Allotted.ID, orderParam.State.Repairing.ID, orderParam.State.SupConfirmed.ID, orderParam.State.Repaired.ID, orderParam.State.Confirmed.ID, }}, orderBaseMap)) data["completed"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "if(state=90,90,if(is_force=0,state,100)) in ": []int{ orderParam.State.Completed.ID, orderParam.State.ForceCompleted.ID, }}, orderBaseMap)) 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{}{ "mindate": dayDate, "maxdate": dayDate + 86399, }, nil) //data["visit_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"deleted_at": 0, "recent_visit_time between": []interface{}{dayDate, dayDate + 86399}}, orderBaseMap)) app.Success(c, data) } func StatisRepair(c *gin.Context) { orderBaseMap := map[string]interface{}{ "audit_type !=": 0, } data := map[string]interface{}{} data["all"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{}, orderBaseMap)) data["state0"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 0}, orderBaseMap)) data["state1"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 1}, orderBaseMap)) data["state2"], _ = order.CountRepair(utils.MergeMap(map[string]interface{}{"audit_state": 2}, orderBaseMap)) app.Success(c, data) } func StatisExtension(c *gin.Context) { orderBaseMap := map[string]interface{}{} data := map[string]interface{}{} data["all"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{}, orderBaseMap)) data["state0"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 0}, orderBaseMap)) data["state1"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 1}, orderBaseMap)) data["state2"], _ = order.CountExtension(utils.MergeMap(map[string]interface{}{"audit_state": 2}, orderBaseMap)) app.Success(c, data) }