123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package luckdrawlist
-
- import (
- "fmt"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/utils"
- "strings"
- "time"
-
- "github.com/go-xorm/xorm"
- )
-
- // LuckdrawDAO 当前数据库操作对象
- type LuckdrawDAO struct {
- ctx *utils.Context
- db *xorm.Session
- }
-
- // NewLuckdrawDAO New Inst
- func NewLuckdrawDAO(ctx *utils.Context) *LuckdrawDAO {
- return &LuckdrawDAO{
- ctx: ctx,
- db: ctx.DB,
- }
- }
-
- type Luckdraw struct {
- model.TaLuckdrawRecord `xorm:"extends"`
- CaseName string
- ActivitName string
- Name string
- CustomerName string
- Phone string
- }
-
- func (m *LuckdrawDAO) GetLuckdrawList(filters []string, limit []int) ([]Luckdraw, int64, error) {
- var luckdraw []Luckdraw
- filterString := ""
- if len(filters) > 0 {
- filterString = strings.Join(filters, " and ")
- filterString += " and "
- }
- sql := `SELECT
- a.* ,
- c.case_name,
- b.name AS activit_name,
- d.name,
- d.customer_name,
- d.phone
- FROM
- ta_luckdraw_record a
- LEFT JOIN ta_luckdraw b ON a.luckdraw_id = b.id
- LEFT JOIN sys_case c ON a.case_id = c.case_id
- LEFT JOIN ta_customer d ON a.user_id = d.customer_id
- where %s 1=1 `
- sql += ` order by a.create_date desc `
- total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckdraw, fmt.Sprintf(sql, filterString), limit)
- if err != nil {
- return nil, 0, err
- }
- return luckdraw, total, err
-
- }
-
- func (m *LuckdrawDAO) GetLuckShareList(fromPhone, toPhone string, filters string, limit []int) ([]model.TaShareLuckyRecord, int64, error) {
- var luckShare []model.TaShareLuckyRecord
- // filterString := ""
- // if len(filters) > 0 {
- // filterString = strings.Join(filters, " and ")
- // filterString += " and "
- // }
- sql := `select * from ta_share_lucky_record a where ` + filters
- if fromPhone != "" {
- sql += ` and a.from_customer_tel = '` + fromPhone + `'`
- }
- if toPhone != "" {
- sql += ` and a.to_customer_tel = '` + toPhone + `'`
- }
- sql += ` order by a.create_date desc `
- total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckShare, sql, limit)
- if err != nil {
- return nil, 0, err
- }
- return luckShare, total, err
- }
-
- func (m *LuckdrawDAO) GetLuckdrawById(luckdrawId, caseids string) (*Luckdraw, error) {
- var luckdraw []Luckdraw
- sql := `SELECT
- a.*,
- c.case_name,
- b.name AS activit_name,
- d.name,
- d.customer_name,
- d.phone
- FROM
- ta_luckdraw_record a
- INNER JOIN ta_luckdraw b ON a.luckdraw_id = b.id
- INNER JOIN sys_case c ON a.case_id = c.case_id
- INNER JOIN ta_customer d ON a.user_id = d.customer_id
- INNER JOIN ta_luckdraw_prize e ON e.id = a.prize_id
- WHERE
- DATE_FORMAT( a.verification_start, '%Y-%m-%d' ) <= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
- AND DATE_FORMAT( a.verification_end, '%Y-%m-%d' ) >= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
- AND a.id = '` + luckdrawId + `'
- and b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')`
- err := m.db.Sql(sql).Find(&luckdraw)
- if err != nil {
- return nil, err
- }
- if len(luckdraw) > 0 {
- return &luckdraw[0], err
- }
- return nil, nil
- }
-
- func (m *LuckdrawDAO) VerifyLuckdraw(luckdrawId string) error {
- var luckdraw = model.TaLuckdrawRecord{
- Id: luckdrawId,
- WriteoffDate: time.Now(),
- Status: 1,
- }
- var cols = []string{
- "writeoff_date",
- "status",
- }
- _, err := m.db.Cols(cols...).Where("id = ?", luckdraw.Id).Update(luckdraw)
- return err
- }
-
- func (m *LuckdrawDAO) AddWriteoffRecord(luckdraw *Luckdraw, userId string) error {
- var luckWriteoff = model.TaLuckdrawWriteoff{}
- luckWriteoff.Id = utils.GetGUID()
- luckWriteoff.CaseId = luckdraw.CaseId
- luckWriteoff.LuckdrawId = luckdraw.LuckdrawId
- luckWriteoff.OrgId = luckdraw.OrgId
- luckWriteoff.RecordId = luckdraw.Id
- luckWriteoff.Status = 0
- luckWriteoff.WriteoffDate = time.Now()
- luckWriteoff.WriteoffUser = userId
- _, err := m.db.Insert(luckWriteoff)
- return err
-
- }
|