12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package manager
- import (
- "encoding/json"
- "go-common/library/log"
- xtime "go-common/library/time"
- "go-common/library/xstr"
- )
- type Relate struct {
- ID int64 `json:"id,omitempty"`
- Param int64 `json:"param,omitempty"`
- Goto string `json:"goto,omitempty"`
- Title string `json:"title,omitempty"`
- ResourceIDs string `json:"resource_ids,omitempty"`
- TagIDs string `json:"tag_ids,omitempty"`
- ArchiveIDs string `json:"archive_ids,omitempty"`
- RecReason string `json:"rec_reason,omitempty"`
- Position int `json:"position,omitempty"`
- STime xtime.Time `json:"stime,omitempty"`
- ETime xtime.Time `json:"etime,omitempty"`
- PlatVer json.RawMessage `json:"plat_ver,omitempty"`
- Versions map[int8][]*Version `json:"versions,omitempty"`
- Aids map[int64]struct{}
- Tids map[int64]struct{}
- Rids map[int64]struct{}
- }
- type Version struct {
- Plat int8 `json:"plat,omitempty"`
- Build int `json:"build,omitempty"`
- Condition string `json:"conditions,omitempty"`
- }
- func (r *Relate) Change() {
- var (
- vs []*Version
- err error
- )
- if r.ArchiveIDs != "" {
- var aids []int64
- if aids, err = xstr.SplitInts(r.ArchiveIDs); err != nil {
- log.Error("xstr.SplitInts(%s) error(%v)", r.ArchiveIDs, err)
- return
- }
- r.Aids = make(map[int64]struct{}, len(aids))
- for _, aid := range aids {
- r.Aids[aid] = struct{}{}
- }
- }
- if r.TagIDs != "" {
- var tids []int64
- if tids, err = xstr.SplitInts(r.TagIDs); err != nil {
- log.Error("xstr.SplitInts(%s) error(%v)", r.TagIDs, err)
- return
- }
- r.Tids = make(map[int64]struct{}, len(tids))
- for _, tid := range tids {
- r.Tids[tid] = struct{}{}
- }
- }
- if r.ResourceIDs != "" {
- var rids []int64
- if rids, err = xstr.SplitInts(r.ResourceIDs); err != nil {
- log.Error("xstr.SplitInts(%s) error(%v)", r.ResourceIDs, err)
- return
- }
- r.Rids = make(map[int64]struct{}, len(rids))
- for _, rid := range rids {
- r.Rids[rid] = struct{}{}
- }
- }
- if err = json.Unmarshal(r.PlatVer, &vs); err != nil {
- log.Error("json.Unmarshal(%s) error(%v)", r.PlatVer, err)
- return
- }
- vm := make(map[int8][]*Version, len(vs))
- for _, v := range vs {
- vm[v.Plat] = append(vm[v.Plat], v)
- }
- r.Versions = vm
- }
|