|
|
- package productrpc
-
- import (
- "encoding/json"
- "log"
- "sort"
- "strconv"
- // "strconv"
- // "time"
- )
-
- /**
- * 获取商品进行中活动
- * 2021/10/06
- * GZ
- */
- func GetActivity(site_id, dbname, id string, sku_id string, url ...string) ([]map[string]string, error) {
-
- conn, err := rpc_server_conn(url...)
- if err != nil {
- return nil, err
- }
- defer conn.Close()
-
- arg := GetActivityParam{site_id, dbname, id, sku_id}
-
- req, err := SetReqData(arg)
- if err != nil {
- return nil, err
- }
-
- res := &Response{}
-
- err = conn.GetActivity(req, res)
-
- if err != nil {
- return nil, err
- }
-
- res_data_de, err := GetResData(res)
- if err != nil {
- return nil, err
- }
- if res_data_de == "" {
- return nil, nil
- }
- var res_arr []map[string]string
-
- err = json.Unmarshal([]byte(res_data_de), &res_arr)
-
- if err != nil {
- return nil, err
- }
-
- var activitys Activitys
-
- if len(res_arr) > 0 {
- var start int
-
- for _, item := range res_arr {
- start, err = strconv.Atoi(item["starttime"])
- if err != nil {
- log.Println(err)
- }
- activitys = append(activitys, Activity{
- Id: item["id"],
- Start: start,
- })
- }
- }
-
- sort.Sort(activitys)
-
- var list []map[string]string = make([]map[string]string, 0)
-
- if len(activitys) > 0 {
- for _, v := range activitys {
- for _, old := range res_arr {
- if v.Id == old["id"] {
- list = append(list, old)
- break
- }
- }
- }
- }
-
- return list, nil
- }
-
- /**
- * 获取商品预热中活动
- * 2021/10/06
- * GZ
- */
- func GetWarmingActivity(site_id, dbname, id string, sku_id string, url ...string) ([]map[string]string, error) {
-
- conn, err := rpc_server_conn(url...)
- if err != nil {
- return nil, err
- }
- defer conn.Close()
-
- arg := GetActivityParam{site_id, dbname, id, sku_id}
-
- req, err := SetReqData(arg)
- if err != nil {
- return nil, err
- }
-
- res := &Response{}
-
- err = conn.GetWarmingActivity(req, res)
-
- if err != nil {
- return nil, err
- }
-
- res_data_de, err := GetResData(res)
- if err != nil {
- return nil, err
- }
- if res_data_de == "" {
- return nil, nil
- }
- var res_arr []map[string]string
-
- err = json.Unmarshal([]byte(res_data_de), &res_arr)
-
- if err != nil {
- return nil, err
- }
-
- var activitys Activitys
-
- if len(res_arr) > 0 {
- var start int
-
- for _, item := range res_arr {
- start, err = strconv.Atoi(item["starttime"])
- if err != nil {
- log.Println(err)
- }
- activitys = append(activitys, Activity{
- Id: item["id"],
- Start: start,
- })
- }
- }
-
- sort.Sort(activitys)
-
- var list []map[string]string = make([]map[string]string, 0)
-
- if len(activitys) > 0 {
- for _, v := range activitys {
- for _, old := range res_arr {
- if v.Id == old["id"] {
- list = append(list, old)
- break
- }
- }
- }
- }
-
- return list, nil
- }
-
- /**
- * 获取商品进行中活动
- * 2021/10/06
- * GZ
- */
- func GetAllActivity(site_id, dbname, id string, sku_id string, url ...string) ([]map[string]string, error) {
-
- conn, err := rpc_server_conn(url...)
- if err != nil {
- return nil, err
- }
- defer conn.Close()
-
- arg := GetActivityParam{site_id, dbname, id, sku_id}
-
- req, err := SetReqData(arg)
- if err != nil {
- return nil, err
- }
-
- res := &Response{}
-
- err = conn.GetAllActivity(req, res)
-
- if err != nil {
- return nil, err
- }
-
- res_data_de, err := GetResData(res)
- if err != nil {
- return nil, err
- }
- if res_data_de == "" {
- return nil, nil
- }
- var res_arr []map[string]string
-
- err = json.Unmarshal([]byte(res_data_de), &res_arr)
-
- if err != nil {
- return nil, err
- }
-
- var activitys Activitys
-
- if len(res_arr) > 0 {
- var start int
-
- for _, item := range res_arr {
- start, err = strconv.Atoi(item["starttime"])
- if err != nil {
- log.Println(err)
- }
- activitys = append(activitys, Activity{
- Id: item["id"],
- Start: start,
- })
- }
- }
-
- sort.Sort(activitys)
-
- var list []map[string]string = make([]map[string]string, 0)
-
- if len(activitys) > 0 {
- for _, v := range activitys {
- for _, old := range res_arr {
- if v.Id == old["id"] {
- list = append(list, old)
- break
- }
- }
- }
- }
-
- return list, nil
- }
-
- type Activity struct {
- Id string
- Start int
- }
-
- type Activitys []Activity
-
- func (s Activitys) Len() int {
- return len(s)
- }
- func (s Activitys) Swap(i, j int) {
- s[i], s[j] = s[j], s[i]
- }
- func (s Activitys) Less(i, j int) bool {
- return s[i].Start < s[j].Start
- }
|