123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package luckdrawlist
-
- import (
- "errors"
- "spaceofcheng/services/models/luckdrawlist"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/models/verify"
- "spaceofcheng/services/utils"
- "strings"
-
- "github.com/astaxie/beego"
- )
-
- // LuckdrawlistServ 系统处理
- type LuckdrawlistServ struct {
- ctx *utils.Context
- dao *luckdrawlist.LuckdrawDAO
- verifyDao *verify.VerifyDAO
- }
-
- // NewLuckdrawlistServ 初始化
- func NewLuckdrawlistServ(ctx *utils.Context) *LuckdrawlistServ {
- return &LuckdrawlistServ{
- ctx: ctx,
- dao: luckdrawlist.NewLuckdrawDAO(ctx),
- verifyDao: verify.NewVerifyDAO(ctx),
- }
- }
- func (s *LuckdrawlistServ) GetLuckShareList(caseID, fromPhone, toPhone string, pagenavi ...int) ([]model.TaShareLuckyRecord, int64, error) {
- filters := ""
- if caseID != "" {
- if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
- return nil, 0, err
- }
-
- filters = "a.case_id='" + caseID + "'"
- } else {
- casesRaw := s.ctx.Get("cases")
- if casesRaw == nil {
- return nil, 0, errors.New("请设置过滤案场")
- }
-
- cases := casesRaw.([]model.SysUserCase)
- caseIDs := []string{}
- for _, cs := range cases {
- caseIDs = append(caseIDs, cs.CaseId)
- }
-
- filters = "a.case_id in ('" + strings.Join(caseIDs, "','") + "')"
- }
-
- limit := utils.GetPageNaviLimit(pagenavi...)
- res, total, err := s.dao.GetLuckShareList(fromPhone, toPhone, filters, limit)
- if err != nil {
- utils.LogError("查询分享列表失败: " + err.Error())
- return nil, 0, errors.New("查询分享列表失败")
- }
-
- return res, total, nil
-
- }
-
- func (s *LuckdrawlistServ) GetLuckdrawList(caseID string, pagenavi ...int) ([]luckdrawlist.Luckdraw, int64, error) {
- filters := []string{}
- if caseID != "" {
- if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
- return nil, 0, err
- }
-
- filters = []string{
- "a.case_id='" + caseID + "'",
- }
- } else {
- casesRaw := s.ctx.Get("cases")
- if casesRaw == nil {
- return nil, 0, errors.New("请设置过滤案场")
- }
-
- cases := casesRaw.([]model.SysUserCase)
- caseIDs := []string{}
- for _, cs := range cases {
- caseIDs = append(caseIDs, cs.CaseId)
- }
-
- filters = []string{
- "a.case_id in ('" + strings.Join(caseIDs, "','") + "')",
- }
- }
-
- limit := utils.GetPageNaviLimit(pagenavi...)
- res, total, err := s.dao.GetLuckdrawList(filters, limit)
- if err != nil {
- utils.LogError("查询抽奖列表失败: " + err.Error())
- return nil, 0, errors.New("查询抽奖列表失败")
- }
-
- return res, total, nil
-
- }
-
- func (s *LuckdrawlistServ) GetVerifyList(qrcode, caseIDs string) (*luckdrawlist.Luckdraw, error) {
- luckdrawId, err := s.verifyDao.GetCustomerCourseIdByQrcode(qrcode)
- if err != nil {
- utils.LogError("查询抽奖列表失败: " + err.Error())
- return nil, errors.New("查询抽奖列表失败")
- }
- luckdraw, err := s.dao.GetLuckdrawById(luckdrawId, caseIDs)
- if err != nil {
- utils.LogError("查询抽奖列表失败: " + err.Error())
- return nil, errors.New("查询抽奖列表失败")
- }
- return luckdraw, nil
-
- }
-
- func (s *LuckdrawlistServ) VerifyLuckdraw(luckdrawId, caseIDs, userId string) error {
- luckdraw, err := s.dao.GetLuckdrawById(luckdrawId, caseIDs)
- err = s.dao.VerifyLuckdraw(luckdrawId)
- if err != nil {
- utils.LogError("核销失败: " + err.Error())
- return errors.New("核销失败")
- }
- beego.Error(luckdraw)
- err = s.dao.AddWriteoffRecord(luckdraw, userId)
- if err != nil {
- utils.LogError("核销失败: " + err.Error())
- return errors.New("核销失败")
- }
- return nil
-
- }
|