package manager import ( "reflect" "time" "zhiyuan/pkg/app" 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) { data := map[string]interface{}{} orderBaseMap := map[string]interface{}{ "deleted_at": 0, } leaderIds, _ := admin.GetAdminByDataAuth(c.GetInt("adminID")) if !reflect.DeepEqual(leaderIds, []int{-1}) { orderBaseMap["leader in"] = leaderIds } dayDate := utils.GetZeroTime(time.Now()).Unix() data["day_num"], _ = order.Count(utils.MergeMap(map[string]interface{}{"created_at >": dayDate}, orderBaseMap)) data["confirm"], _ = order.Count(utils.MergeMap(map[string]interface{}{"state": orderParam.State.Allotted.ID}, orderBaseMap)) data["repairing"], _ = order.Count(utils.MergeMap(map[string]interface{}{"if(state=90,90,if(is_force=0,state,100)) in": []int{ orderParam.State.Suspending.ID, orderParam.State.Repairing.ID, orderParam.State.SupConfirmed.ID, orderParam.State.Confirmed.ID, }}, orderBaseMap)) data["repaired"], _ = order.Count(utils.MergeMap(map[string]interface{}{"if(state=90,90,if(is_force=0,state,100)) in ": []int{ orderParam.State.Repaired.ID, orderParam.State.Completed.ID, orderParam.State.ForceCompleted.ID, }}, orderBaseMap)) data["total"], _ = order.Count(orderBaseMap) data["unfinished"] = data["total"].(int64) - data["repaired"].(int64) app.Success(c, data) }