
产品经理:这次评个小需求,大概10分钟就完事儿了
好,不要每次都说10分钟,实际讨论一个小时 :小猿
产品经理:放心,最多就10分钟
OK,开始你的表演吧:小猿
产品经理:我们要实现一个时间轴,时间顺序排列
产品经理:好了,我讲完了,下班前我要验收。
---------- :小猿
宗旨:满足产品经理的一切不切实际的幻想
数据一:
- // GetGirlfriend 生活
- func GetGirlfriend() (resp []*Data) {
- resp = make([]*Data, 3)
- resp = []*Data{
- {
- Id: 1,
- Username: "如花",
- Event: "摸鱼-约逛街",
- Datetime: "2022-11-09 14:00",
- Timestamp: 1667973600000,
- },
- {
- Id: 2,
- Username: "如花",
- Event: "吃火锅",
- Datetime: "2022-11-09 18:30",
- Timestamp: 1667989800000,
- },
- {
- Id: 3,
- Username: "如花",
- Event: "看电影",
- Datetime: "2022-11-09 20:30",
- Timestamp: 1667997000000,
- },
- }
-
- return
- }
数据二:
- // GetLife 活着
- func GetLife() (resp []*Data) {
- resp = make([]*Data, 3)
- resp = []*Data{
- {
- Id: 1,
- Username: "仙儿",
- Event: "沟通需求v1.0",
- Datetime: "2022-11-09 14:30",
- Timestamp: 1667975400000,
- },
- {
- Id: 2,
- Username: "仙儿",
- Event: "讨论技术方案",
- Datetime: "2022-11-09 16:00",
- Timestamp: 1667980800000,
- },
- {
- Id: 3,
- Username: "仙儿",
- Event: "写PPT",
- Datetime: "2022-11-09 17:30",
- Timestamp: 1667986200000,
- },
- }
-
- return
- }
功能拆解:
- package main
-
- import (
- "encoding/json"
- "fmt"
- "sort"
- )
-
- type Data struct {
- Id int32 `json:"id"`
- Username string `json:"username"`
- Event string `json:"event"`
- Datetime string `json:"datetime"`
- Timestamp int64 `json:"timestamp"`
- }
-
- func main() {
-
- // 我的一天
- myDay := make([]*Data, 0, 6)
- myDay = append(myDay, GetGirlfriend()...)
- myDay = append(myDay, GetLife()...)
-
- // 时间 slice
- timestamp := make([]int, 0)
- // data map
- dataMap := make(map[int64]*Data)
- for _, v := range myDay {
- timestamp = append(timestamp, int(v.Timestamp))
-
- dataMap[v.Timestamp] = v
- }
-
- // 排序(正序)
- sort.Ints(timestamp)
-
- // 格式化数据
- resp := make([]*Data, 0, 6)
- for _, value := range timestamp {
- if info, ok := dataMap[int64(value)]; ok {
- resp = append(resp, info)
- }
- }
-
- // 输出
- s, _ := json.Marshal(resp)
- fmt.Printf(string(s))
- }
打印:

我为人人,人人为我,美美与共,天下大同。