123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- package bidderPlan
- import (
- . "app.yhyue.com/moapp/jybase/api"
- "app.yhyue.com/moapp/jybase/go-xweb/xweb"
- "app.yhyue.com/moapp/message/handler/activity"
- "encoding/json"
- "fmt"
- "github.com/gogf/gf/v2/util/gconv"
- "log"
- "time"
- )
- // Activity BidderPlan 投标人专属免费计划
- type Activity struct {
- *xweb.Action
- period xweb.Mapper `xweb:"/membershipDay/period"` //活动周期
- schedule xweb.Mapper `xweb:"/membershipDay/schedule"` //活动进度
- receive xweb.Mapper `xweb:"/membershipDay/receive"` //领取奖励
- //其他
- doShare xweb.Mapper `xweb:"/membershipDay/doShare"` //分享
- //预热-每日福利
- getDailyBoonDetail xweb.Mapper `xweb:"/membershipDay/getDailyBoonDetail"` //查询每日福利余额
- getDailyBoonSVip xweb.Mapper `xweb:"/membershipDay/getDailyBoonSVip"` //获取限量vip
- //活动领券
- lotteryList xweb.Mapper `xweb:"/membershipDay/lotteryList"` //活动券列表
- getLottery xweb.Mapper `xweb:"/membershipDay/getLottery"` //领取优惠券
- //22双十一活动
- questionnaire xweb.Mapper `xweb:"/membershipDay/questionnaire"` //预热活动问卷
- winnerInfo xweb.Mapper `xweb:"/membershipDay/winnerInfo"` //当日中奖人信息
- }
- // WinnerInfo 当日中奖信息
- func (act *Activity) WinnerInfo() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (map[string]interface{}, error) {
- return activity.MembershipDay.WinnerInfo(), nil
- }()
- if errMsg != nil {
- log.Printf("Activity WinnerInfo %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // 预热活动 问卷提交
- // url:/jyActivity/membershipDay/questionnaire
- func (act *Activity) Questionnaire() {
- userId := gconv.String(act.GetSession("userId"))
- phone := gconv.String(act.Session().Get("s_phone"))
- rData, errMsg := func() (bool, error) {
- reqParam := map[string]interface{}{}
- err := json.Unmarshal(act.Body(), &reqParam)
- log.Println(err, "------", reqParam)
- if err != nil || len(reqParam) == 0 {
- return false, fmt.Errorf("请求参数异常")
- }
- //提交答案
- answers := gconv.String(reqParam["answers"])
- return activity.MembershipDay.Questionnaire(userId, phone, answers) == nil, nil
- }()
- if errMsg != nil {
- log.Printf("Activity Questionnaire %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // Period 活动周期
- // url:/jyActivity/bidderPlan/period
- func (act *Activity) Period() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (map[string]interface{}, error) {
- reqParam := map[string]interface{}{}
- json.Unmarshal(act.Body(), &reqParam)
- //先满足双十一活动
- if from := gconv.String(reqParam["from"]); from == "doubleEleven" && activity.MembershipDay.DoubleEleven {
- return map[string]interface{}{
- "before": activity.MembershipDay.T1.Unix(), //预热开始时间
- "clock": activity.MembershipDay.DailyClock, //预热活动每天开抢时间
- "start": activity.MembershipDay.T2.Unix(), //活动开始
- "end": activity.MembershipDay.Ed.Unix(), //活动结束
- "now": time.Now().Unix(), //服务器当前时间戳
- }, nil
- }
- return map[string]interface{}{
- "before": 1651420799, //预热开始时间
- "clock": activity.MembershipDay.DailyClock, //预热活动每天开抢时间
- "start": 1651420799, //活动开始
- "end": 1651420799, //活动结束
- "now": time.Now().Unix(), //服务器当前时间戳
- }, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan Schedule %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // Schedule 活动进度
- // url /jyActivity/bidderPlan/schedule
- func (act *Activity) Schedule() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (map[string]interface{}, error) {
- //校验是否达标
- return map[string]interface{}{
- "nowNum": activity.MembershipDay.GetSchedule(userId), //当前活动进度
- "schedule": map[int]int{
- 1000: activity.MembershipDay.GetScheduleQuery(userId, 1000),
- 1500: activity.MembershipDay.GetScheduleQuery(userId, 1500),
- },
- "missions": map[string]int{
- "buyvip": activity.MembershipDay.MissionsSVipBuyQuery(userId),
- "invite": activity.MembershipDay.MissionsInviteQuery(userId),
- "share": activity.MembershipDay.MissionsShareQuery(userId),
- },
- }, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan Schedule %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // Receive 领取奖励
- // url: /jyActivity/bidderPlan/receive
- func (act *Activity) Receive() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (bool, error) {
- //连点处理
- if !activity.MembershipDay.FastClickCheck(userId) {
- return false, fmt.Errorf("操作频繁")
- }
- reqParam := map[string]interface{}{}
- if err := json.Unmarshal(act.Body(), &reqParam); err != nil || len(reqParam) == 0 {
- return false, fmt.Errorf("请求参数异常")
- }
- //校验是否达标
- t := gconv.String(reqParam["type"])
- var err error
- if t == "mission" { //任务奖励
- switch gconv.String(reqParam["value"]) {
- case "buyvip":
- err = activity.MembershipDay.MissionsSVipBuyGiven(userId)
- case "invite":
- err = activity.MembershipDay.MissionsInviteGiven(userId)
- case "share":
- err = activity.MembershipDay.MissionsShareGiven(userId)
- default:
- return false, fmt.Errorf("未知请求")
- }
- } else { //活动进度额外奖励
- err = activity.MembershipDay.ScheduleGiven(userId, gconv.Int(reqParam["value"]))
- }
- if err != nil {
- return false, err
- }
- return true, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan Receive %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // DoShare 分享完成接口
- func (act *Activity) DoShare() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (bool, error) {
- err := activity.MembershipDay.ShareFinish(userId)
- if err != nil {
- return false, err
- }
- return true, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan DoShare %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // GetDailyBoonDetail 预热福利-查询每日余额
- func (act *Activity) GetDailyBoonDetail() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (map[string]interface{}, error) {
- has, todayBalance, registerBool, _, err := activity.MembershipDay.GetDailyBoonDetail(userId)
- if err != nil {
- return nil, err
- }
- return map[string]interface{}{
- "got": has,
- "total": todayBalance,
- "registerBool": registerBool, //是否是活动允许内的注册用户
- }, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan GetDailyBoonDetail %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // GetDailyBoonSVip 预热福利-领取超级订阅
- func (act *Activity) GetDailyBoonSVip() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (bool, error) {
- if !activity.MembershipDay.FastClickCheck(userId) {
- return false, fmt.Errorf("操作频繁")
- }
- if err := activity.MembershipDay.GetDailyBoonSVip(userId); err != nil {
- return false, err
- }
- return true, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan GetDailyBoonSVip %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // LotteryList 活动券列表
- func (act *Activity) LotteryList() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() ([]activity.LotteryDetail, error) {
- return activity.MembershipDay.GetActivityLotteryList(userId)
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan LotteryDetail %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
- // GetLottery 领取活动券
- func (act *Activity) GetLottery() {
- userId := gconv.String(act.GetSession("userId"))
- rData, errMsg := func() (bool, error) {
- name := gconv.String(act.Session().Get("s_nickname"))
- reqParam := map[string]interface{}{}
- if err := json.Unmarshal(act.Body(), &reqParam); err != nil || len(reqParam) == 0 {
- return false, fmt.Errorf("请求参数异常")
- }
- lotteryIds := gconv.String(reqParam["lotteryIds"])
- if lotteryIds == "" {
- return false, fmt.Errorf("无选择卡券")
- }
- err := activity.MembershipDay.GetLottery(userId, name, lotteryIds)
- if err != nil {
- return false, err
- }
- return true, nil
- }()
- if errMsg != nil {
- log.Printf("Activity BidderPlan GetLottery %s error:%s\n", userId, errMsg.Error())
- }
- act.ServeJson(NewResult(rData, errMsg))
- }
|