|
@@ -0,0 +1,94 @@
|
|
|
+package productManager
|
|
|
+
|
|
|
+import (
|
|
|
+ "app.yhyue.com/moapp/jybase/common"
|
|
|
+ "context"
|
|
|
+ "github.com/gogf/gf/v2/frame/g"
|
|
|
+ "github.com/gogf/gf/v2/util/gconv"
|
|
|
+ "github.com/pkg/errors"
|
|
|
+ "jyOrderManager/internal/model"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+func (p *sProductManager) loadActivity(ctx context.Context) error {
|
|
|
+ //加载活动
|
|
|
+ var (
|
|
|
+ activityList []*model.ActivityClass
|
|
|
+ activityCodeMapping = map[string]*model.ActivityClass{}
|
|
|
+ )
|
|
|
+ actList, err := g.DB().Query(ctx, "SELECT * FROM jy_product_activity WHERE state =1 and activity_ed_time > ?", time.Now().Format(time.DateTime))
|
|
|
+ if err != nil {
|
|
|
+ return errors.Wrap(err, "加载活动异常")
|
|
|
+ }
|
|
|
+ if len(actList) > 0 {
|
|
|
+ //查询活动产品
|
|
|
+ var activityProductArray []*model.ActivityProductSetting
|
|
|
+ productList, err := g.DB().Query(ctx, "SELECT activity_code,product_code,service_type,tactics,filter FROM jy_product_activity_item WHERE state =1")
|
|
|
+ if err != nil {
|
|
|
+ return errors.Wrap(err, "获取活动中商品异常")
|
|
|
+ }
|
|
|
+ if err := productList.Structs(&activityProductArray); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ for _, m := range actList.List() {
|
|
|
+ var (
|
|
|
+ name = gconv.String(m["name"])
|
|
|
+ code = gconv.String(m["code"])
|
|
|
+ subject = gconv.Int(m["subject"])
|
|
|
+ st = gconv.String(m["activity_st_time"])
|
|
|
+ ed = gconv.String(m["activity_ed_time"])
|
|
|
+ )
|
|
|
+ s, err := time.ParseInLocation(time.DateTime, st, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ e, err := time.ParseInLocation(time.DateTime, ed, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ act := model.ActivityClass{
|
|
|
+ Name: name,
|
|
|
+ Code: code,
|
|
|
+ Subject: subject,
|
|
|
+ StartTime: s,
|
|
|
+ EndTime: e,
|
|
|
+ }
|
|
|
+ for _, record := range activityProductArray {
|
|
|
+ if record.ActivityCode == code {
|
|
|
+ act.Products = append(act.Products, record)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(act.Products) > 0 {
|
|
|
+ activityList = append(activityList, &act)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p.ActivityList = activityList
|
|
|
+ p.ActivityCodeMapping = activityCodeMapping
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func (p *sProductManager) GetActivityList(buySet ...int) []*model.ActivityClass {
|
|
|
+ var (
|
|
|
+ result []*model.ActivityClass
|
|
|
+ set int = 3 //1个人 2企业 3个人和企业都支持
|
|
|
+ )
|
|
|
+
|
|
|
+ if len(buySet) > 0 {
|
|
|
+ set = common.If(buySet[0] > 0 && buySet[0] < 3, buySet[0], 3).(int)
|
|
|
+ }
|
|
|
+
|
|
|
+ if set == 3 {
|
|
|
+ return p.ActivityList
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, top := range p.ActivityList {
|
|
|
+ if top.Subject == 1 && set != 2 {
|
|
|
+ result = append(result, top)
|
|
|
+ }
|
|
|
+ if top.Subject == 2 && set != 1 {
|
|
|
+ result = append(result, top)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result
|
|
|
+}
|