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
|
|
}
|