123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package marketing
-
- import (
- "spaceofcheng/services/models"
- "spaceofcheng/services/models/model"
- "spaceofcheng/services/utils"
- "strconv"
- "strings"
- "time"
-
- "github.com/go-xorm/xorm"
- )
-
- // 活动类型
- const (
- NEW_ACTIVITIES = 1 // 注册赠券
-
- )
-
- // 赠券卡券
- const (
- drink = 1 // 饮品通用卷
- course = 2 // 课程通用卷
- petty_diplomat = 3 // 小小外交官通用卷
- )
-
- // GoodsDAO 当前数据库操作对象
- type MarketingDAO struct {
- ctx *utils.Context
- db *xorm.Session
- }
-
- // NewMarketingDAO New Inst
- func NewMarketingDAO(ctx *utils.Context) *MarketingDAO {
- return &MarketingDAO{
- ctx: ctx,
- db: ctx.DB,
- }
- }
-
- // MarketingInfo
- type MarketingInfo struct {
- model.SysActivity `xorm:"extends"`
- CaseName string
- ActionId string
- ActiveType string
- ResourceType string
- ResourceDesc string
- Actions []model.SysActivityAction
- }
-
- // GetMarketingList 查询所有
- func (m *MarketingDAO) GetMarketingList(caseids string, page int, pageSize int) ([]MarketingInfo, error) {
-
- var news []MarketingInfo
- //sql := `select * from sys_activity new order by new.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
- sql := `SELECT sc.case_name,sa.*,sas.action_id,sas.active_type,sas.resource_type,sas.resource_desc from sys_activity sa
- LEFT JOIN sys_activity_action sas on sa.activity_id = sas.activity_id LEFT JOIN sys_case sc on sa.case_id = sc.case_id
- where sa.status != -1 and sa.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') order by sa.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
-
- err := m.db.Sql(sql).Find(&news)
- return news, err
-
- }
-
- // GetMarketingCount 获取总数
- func (m *MarketingDAO) GetMarketingCount(caseids string) (int64, error) {
- var total []int64
- sql := `select count(*) as total from sys_activity where case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and status>` + strconv.Itoa(models.STATUS_DEL)
- err := m.db.Sql(sql).Cols("total").Find(&total)
- if err != nil {
-
- }
- return total[0], err
- }
-
- // AddMarketing 添加
- func (m *MarketingDAO) AddMarketing(activity model.SysActivity) (*model.SysActivity, error) {
- activity.ActivityId = utils.GetGUID()
- activity.CreateDate = time.Now()
- //activity.Status = models.STATUS_NORMAL
- activity.Status = models.STATUS_NORMAL // 状态为正常
- org := m.ctx.Get("org").(model.SysOrg)
- activity.OrgId = org.OrgId
- _, err := m.db.Insert(&activity)
-
- return &activity, err
- }
-
- // GetMarketingById 根据ID查询活动营销
- func (m *MarketingDAO) GetMarketingById(activityId string) (*model.SysActivity, error) {
-
- var activity []model.SysActivity
- err := m.db.Where("activity_id=?", activityId).Find(&activity)
- if err != nil {
- return nil, err
- }
- if len(activity) > 0 {
- return &activity[0], nil
- }
- return nil, nil
-
- }
-
- // DelMarketing 修改状态 营销活动(删除,启用,停用)
- /**
- **/
- func (m *MarketingDAO) DelMarketing(activityId string, status int) error {
-
- var info = model.SysActivity{
- ActivityId: activityId,
- // Status: models.STATUS_DEL,
- Status: status,
- }
- var cols = []string{
- "status",
- }
- _, err := m.db.Cols(cols...).Where("activity_id=?", activityId).Update(info)
- return err
- }
-
- // UpdateMarketing 修改 营销活动
- func (m *MarketingDAO) UpdateMarketing(activity model.SysActivity) error {
- // var cols = []string{
- // "activity_name",
- // "activity_type",
- // "case_id",
- // "org_id",
- // "case_id",
- // }
-
- var cols = []string{
- "activity_name",
- "activity_type",
- }
- _, err := m.db.Cols(cols...).Where("action_id=?", activity.ActivityId).Update(activity)
- return err
- }
-
- func (m *MarketingDAO) GetUserCases(caseid string) ([]model.SysCase, error) {
- var cases []model.SysCase
- sql := `SELECT
- *
- FROM
- sys_case
- WHERE case_id in ('` + strings.Replace(caseid, ",", "','", -1) + `')`
- err := m.db.Sql(sql).Find(&cases)
- return cases, err
- }
|