Kaynağa Gözat

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/services into dev

wangfei 6 yıl önce
ebeveyn
işleme
d23cb4546a

+ 22
- 0
controllers/cases/signin.go Dosyayı Görüntüle

@@ -42,3 +42,25 @@ func (c *SigninController) GetSigninWhere() {
42 42
 
43 43
 	c.ResponseJSON(res)
44 44
 }
45
+
46
+// AddSignin 存入签到记录
47
+func (c *SigninController) AddSignin() {
48
+	phone := c.GetString("phone");
49
+	openId := c.GetString("openId")
50
+	caseId := c.GetString("caseId")
51
+	activityId := c.GetString("activityId")
52
+
53
+	signin := model.TaCheckinRecord{}
54
+	signin.Phone = phone
55
+	signin.OpenId = openId
56
+
57
+	userMapping := c.Context.Get("userMap").(model.TaUserMapping)
58
+
59
+	res,err := c.dao.AddSignin(signin,caseId,activityId,&userMapping)
60
+
61
+	if err != nil {
62
+		c.ResponseError(err)
63
+	}
64
+	c.ResponseJSON(res)
65
+}
66
+

+ 8
- 6
controllers/marketing/marketing.go Dosyayı Görüntüle

@@ -23,7 +23,7 @@ func (c *MarketingController) Constructor() {
23 23
 // 获取 营销活动列表
24 24
 func (c *MarketingController) GetMarketingList(){
25 25
 	page, _ := c.GetInt("page")
26
-	pageSize, _ := c.GetInt("pagesize")
26
+	pageSize, _ := c.GetInt("pageSize")
27 27
 
28 28
 	marketings, err := c.serv.GetMarketingList(page,pageSize)
29 29
 	if err != nil {
@@ -36,17 +36,19 @@ func (c *MarketingController) GetMarketingList(){
36 36
 // SaveMarketing 保存营销活动
37 37
 func (c *MarketingController) SaveMarketing() {
38 38
 	marketing := model.SysActivity{}
39
-
39
+	// 机构
40
+	//org := c.Context.Get("org").([]model.SysOrg)
40 41
 	// 获取值
41 42
 	activityName := c.GetString("activityName")
42 43
 	activityType := c.GetString("activityType")
43 44
 	resourceDesc := c.GetString("resourceDesc") // 活动描述
45
+	caseId := c.GetString("CaseId")
44 46
 
45 47
 	// 赋值
46 48
 	marketing.ActivityName = activityName
47 49
 	marketing.ActivityType = activityType
48 50
 
49
-	newInfo,_, err := c.serv.SaveMarketing(marketing,resourceDesc)
51
+	newInfo,_, err := c.serv.SaveMarketing(marketing,resourceDesc,caseId)
50 52
 	if err != nil {
51 53
 		c.ResponseError(err)
52 54
 	}
@@ -88,7 +90,7 @@ func (c *MarketingController) UpdateMarketing(){
88 90
 
89 91
 // DelMarketing 删除
90 92
 func (c *MarketingController) DelMarketing(){
91
-	activityId := c.GetString("activityId")
93
+	activityId := c.GetString(":activityId")
92 94
 	err := c.serv.DelMarketing(activityId)
93 95
 	if err != nil {
94 96
 		c.ResponseError(err)
@@ -98,7 +100,7 @@ func (c *MarketingController) DelMarketing(){
98 100
 
99 101
 // DelMarketing 正常
100 102
 func (c *MarketingController) DelMarketingNormal(){
101
-	activityId := c.GetString("activityId")
103
+	activityId := c.GetString(":activityId")
102 104
 	err := c.serv.DelMarketingNormal(activityId)
103 105
 	if err != nil {
104 106
 		c.ResponseError(err)
@@ -108,7 +110,7 @@ func (c *MarketingController) DelMarketingNormal(){
108 110
 
109 111
 // DelMarketing 停用
110 112
 func (c *MarketingController) DelMarketingDisable(){
111
-	activityId := c.GetString("activityId")
113
+	activityId := c.GetString(":activityId")
112 114
 	err := c.serv.DelMarketingDisable(activityId)
113 115
 	if err != nil {
114 116
 		c.ResponseError(err)

+ 13
- 3
models/cases/signin.go Dosyayı Görüntüle

@@ -3,9 +3,10 @@ package cases
3 3
 import (
4 4
 	"spaceofcheng/services/models/model"
5 5
 	"spaceofcheng/services/utils"
6
+	"spaceofcheng/services/models"
6 7
 	"strconv"
7 8
 	"strings"
8
-
9
+	"time"
9 10
 	"github.com/go-xorm/xorm"
10 11
 )
11 12
 
@@ -43,10 +44,10 @@ func NewSigninDAO(ctx *utils.Context) *SigninDAO {
43 44
 	}
44 45
 }
45 46
 
46
-// CaseInfo 案场
47
+// SigninInfo 案场
47 48
 type SigninInfo struct {
48 49
 	model.TaCheckinRecord `xorm:"extends"`
49
-	//CreateUserName string
50
+	UserId string
50 51
 }
51 52
 
52 53
 /**
@@ -95,3 +96,12 @@ func (m *SigninDAO) GetSigninWhere(selectType int, caseid string, page, pageSize
95 96
 	// }
96 97
 	return signin, err
97 98
 }
99
+
100
+// AddSignin 添加签到记录 
101
+func (m *SigninDAO) AddSignin(signin model.TaCheckinRecord)(model.TaCheckinRecord,error){
102
+	signin.CheckinId = utils.GetGUID()
103
+	signin.CreateDate = time.Now()
104
+	signin.Status = models.STATUS_NORMAL
105
+	_,err := m.db.Insert(signin)
106
+	return signin,err
107
+}

+ 14
- 14
models/marketing/marketing.go Dosyayı Görüntüle

@@ -10,7 +10,7 @@ import(
10 10
 
11 11
 // 活动类型
12 12
 const (
13
-	NEW_ACTIVITIES = 0 // 注册赠券
13
+	NEW_ACTIVITIES = 1 // 注册赠券
14 14
 
15 15
 )
16 16
 
@@ -19,7 +19,6 @@ const (
19 19
 	DELETE = -1 // 删除
20 20
 	NORMAL = 0 // 正常
21 21
 	DISABLE = 1 // 停用
22
-
23 22
 )
24 23
 
25 24
 // 赠券卡券
@@ -43,9 +42,14 @@ func NewMarketingDAO(ctx *utils.Context) *MarketingDAO {
43 42
 	}
44 43
 }
45 44
 
46
-// MarketingInfo 课程
45
+// MarketingInfo 
47 46
 type MarketingInfo struct {
48 47
 	model.SysActivity `xorm:"extends"`
48
+	CaseName		 string
49
+	ActionId     string
50
+	ActiveType  string
51
+	ResourceType string
52
+	ResourceDesc string
49 53
 	Actions []model.SysActivityAction
50 54
 }
51 55
 
@@ -53,7 +57,9 @@ type MarketingInfo struct {
53 57
 func (m *MarketingDAO) GetMarketingList(page int, pageSize int) ([]MarketingInfo ,error){
54 58
 
55 59
 	var news []MarketingInfo
56
-	sql := `select * from sys_activity new order by new.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
60
+	//sql := `select * from sys_activity new order by new.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
61
+	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 order by sa.create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + ", " + strconv.Itoa(pageSize)
62
+
57 63
 	err := m.db.Sql(sql).Find(&news)
58 64
 	return news, err
59 65
 
@@ -72,24 +78,18 @@ func (m *MarketingDAO) GetMarketingCount()(int64, error){
72 78
 
73 79
 
74 80
 // AddMarketing 添加
75
-func (m *MarketingDAO) AddMarketing(activity *model.SysActivity) (*model.SysActivity, error) {
81
+func (m *MarketingDAO) AddMarketing(activity model.SysActivity, caseId string) (*model.SysActivity, error) {
76 82
 	activity.ActivityId = utils.GetGUID()
77 83
 	activity.CreateDate = time.Now()
78 84
 	//activity.Status = models.STATUS_NORMAL
79 85
 	activity.Status = NORMAL // 状态为正常
80 86
 	org := m.ctx.Get("org").(model.SysOrg)
81 87
 	activity.OrgId = org.OrgId
82
-	caseinfo := m.ctx.Get("currentCase").(model.SysCase)
83
-	activity.CaseId = caseinfo.CaseId
84
-	//activity.CaseId = user.
88
+	activity.CaseId = caseId
85 89
 
86
-	_, err := m.db.Insert(activity)
90
+	_, err := m.db.Insert(&activity)
87 91
 
88
-	// // 添加活动动作数据
89
-	// var new model.SysActivityAction
90
-	// new.ActionId = activity.ActivityId
91
-	// new.ActiveType = activity.ActivityType
92
-	return activity, err
92
+	return &activity, err
93 93
 }
94 94
 
95 95
 

+ 3
- 2
models/marketing/work.go Dosyayı Görüntüle

@@ -27,11 +27,12 @@ type WrokInfo struct {
27 27
 }
28 28
 
29 29
 // 添加 活动动作
30
-func (m *WorkDAO) AddWork(action *model.SysActivityAction) (*model.SysActivityAction,error){
30
+func (m *WorkDAO) AddWork(action model.SysActivityAction) (*model.SysActivityAction,error){
31 31
 	action.ActionId = utils.GetGUID()
32
+	println("service: 主键:" + action.ActionId + "活动ID"+action.ActivityId+" 活动类型-"+action.ActiveType+" 资源描述-"+action.ResourceDesc+" 资源类型-"+	action.ResourceType)
32 33
 	_,err := m.db.Insert(&action)
33 34
 
34
-	return action,err
35
+	return &action,err
35 36
 
36 37
 }
37 38
 

+ 15
- 15
models/model/sys_activity.go Dosyayı Görüntüle

@@ -1,15 +1,15 @@
1
-package model
2
-
3
-import (
4
-	"time"
5
-)
6
-
7
-type SysActivity struct {
8
-	ActivityId   string    `xorm:"not null pk VARCHAR(64)"`
9
-	ActivityName string    `xorm:"VARCHAR(50)"`
10
-	ActivityType string    `xorm:"VARCHAR(64)"`
11
-	OrgId        string    `xorm:"VARCHAR(64)"`
12
-	CaseId       string    `xorm:"VARCHAR(64)"`
13
-	Status       int       `xorm:"SMALLINT(6)"`
14
-	CreateDate   time.Time `xorm:"DATETIME"`
15
-}
1
+package model
2
+
3
+import (
4
+	"time"
5
+)
6
+
7
+type SysActivity struct {
8
+	ActivityId   string    `xorm:"not null pk VARCHAR(64)"`
9
+	ActivityName string    `xorm:"VARCHAR(50)"`
10
+	ActivityType string    `xorm:"VARCHAR(64)"`
11
+	OrgId        string    `xorm:"VARCHAR(64)"`
12
+	CaseId       string    `xorm:"VARCHAR(64)"`
13
+	Status       int       `xorm:"SMALLINT(6)"`
14
+	CreateDate   time.Time `xorm:"DATETIME"`
15
+}

+ 62
- 1
service/cases/signin.go Dosyayı Görüntüle

@@ -2,15 +2,19 @@ package cases
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/models/cases"
5
+	"spaceofcheng/services/models/marketing"
5 6
 	"spaceofcheng/services/utils"
6
-
7
+	"spaceofcheng/services/models/model"
7 8
 	"github.com/astaxie/beego"
9
+	"encoding/json"
8 10
 )
9 11
 
10 12
 // SigninServ 系统处理
11 13
 type SigninServ struct {
12 14
 	ctx *utils.Context
13 15
 	dao *cases.SigninDAO
16
+	marDao  *marketing.MarketingDAO
17
+	caseDao     *cases.CaseDAO
14 18
 }
15 19
 
16 20
 // NewSigninServ 初始化
@@ -18,6 +22,8 @@ func NewSigninServ(ctx *utils.Context) *SigninServ {
18 22
 	return &SigninServ{
19 23
 		ctx: ctx,
20 24
 		dao: cases.NewSigninDAO(ctx),
25
+		marDao: marketing.NewMarketingDAO(ctx),
26
+		caseDao: cases.NewCaseDAO(ctx),
21 27
 	}
22 28
 }
23 29
 
@@ -47,3 +53,58 @@ func (s *SigninServ) GetSigninWhere(selectType int, caseids string, page, pageSi
47 53
 		"page":     page,
48 54
 	}, err
49 55
 }
56
+
57
+// 添加 签到记录
58
+func (s *SigninServ) AddSignin(signin model.TaCheckinRecord,caseId string,activityId string,userMap *model.TaUserMapping) (*model.TaCheckinRecord,error) {
59
+	if signin.OpenId == "" {
60
+		return nil, utils.LogError("没有OpenId")
61
+	}
62
+	if signin.Phone == "" {
63
+		return nil, utils.LogError("没有Phone手机号")
64
+	}
65
+	if caseId == "" {
66
+		return nil,utils.LogError("没有案场ID")
67
+	}
68
+	if activityId == ""  {
69
+		return nil,utils.LogError("没有活动ID")
70
+	}
71
+
72
+	// 获取上下文的用户
73
+	user := s.ctx.Get("user").(model.SysUser)
74
+	casesInfo,err := s.caseDao.GetCaseByID(caseId)
75
+	activityInfo,err := s.marDao.GetMarketingById(activityId)
76
+	
77
+	// 定义Map
78
+	var jsonMap = map[string]string{}
79
+	accountInfo := userMap.AccountInfo
80
+	// 转换JSON
81
+	var jsonBlob = []byte(accountInfo)
82
+	jsonErr := json.Unmarshal(jsonBlob, &jsonMap)
83
+
84
+	if jsonErr != nil {
85
+		return nil,utils.LogError("accountInfo转换json失败")
86
+	}
87
+	// openId
88
+	signin.OpenId = jsonMap["openid"]
89
+	// 微信昵称
90
+	signin.CustomerName = jsonMap["nickname"]
91
+	// 客户姓名
92
+	signin.Name = user.UserName
93
+	// 客户ID
94
+	signin.CustomerId = user.UserId
95
+
96
+	// 案场
97
+	signin.CaseId = casesInfo.CaseId
98
+	signin.CaseName = casesInfo.CaseName
99
+
100
+	// 活动
101
+	signin.ActivityId = activityInfo.ActivityId
102
+	signin.ActivityName = activityInfo.ActivityName
103
+
104
+	info, err := s.dao.AddSignin(signin)
105
+	if err != nil {
106
+		return nil,err
107
+	}
108
+
109
+	return &info,err
110
+}

+ 6
- 4
service/marketing/marketing.go Dosyayı Görüntüle

@@ -21,10 +21,11 @@ func NewMarketingServ(ctx *utils.Context) *MarketingServ {
21 21
 	return &MarketingServ{
22 22
 		ctx: ctx,
23 23
 		dao: marketing.NewMarketingDAO(ctx),
24
+		wdao: marketing.NewWorkDAO(ctx),
24 25
 	}
25 26
 }
26 27
 
27
-// GetCustWithWXList 获取客户列表
28
+// GetMarketingList 获取活动列表
28 29
 func (s *MarketingServ) GetMarketingList(page int, pageSize int) (map[string]interface{}, error) {
29 30
 
30 31
 	if pageSize == 0 {
@@ -54,14 +55,14 @@ func (s *MarketingServ) GetMarketingList(page int, pageSize int) (map[string]int
54 55
 /**
55 56
 * resource_desc 活动描述
56 57
  */
57
-func (s *MarketingServ) SaveMarketing(activity model.SysActivity, resourceDesc string) (*model.SysActivity, *model.SysActivityAction, error) {
58
+func (s *MarketingServ) SaveMarketing(activity model.SysActivity, resourceDesc string, caseId string) (*model.SysActivity, *model.SysActivityAction, error) {
58 59
 
59 60
 	var newInfo *model.SysActivity
60 61
 	var newWoke *model.SysActivityAction
61 62
 
62 63
 	var err error
63 64
 	// 存储 营销活动
64
-	newInfo, err = s.dao.AddMarketing(&activity)
65
+	newInfo, err = s.dao.AddMarketing(activity,caseId)
65 66
 	if err != nil {
66 67
 		return nil, nil, err
67 68
 	}
@@ -70,9 +71,10 @@ func (s *MarketingServ) SaveMarketing(activity model.SysActivity, resourceDesc s
70 71
 	woke.ActivityId = newInfo.ActivityId
71 72
 	woke.ActiveType = newInfo.ActivityType
72 73
 	woke.ResourceDesc = resourceDesc
74
+	woke.ResourceType = "占位符"
73 75
 
74 76
 	// 存储 活动动作
75
-	newWoke, err = s.wdao.AddWork(&woke)
77
+	newWoke, err = s.wdao.AddWork(woke)
76 78
 	if err != nil {
77 79
 		return nil, nil, err
78 80
 	}

+ 1
- 2
service/marketing/work.go Dosyayı Görüntüle

@@ -24,8 +24,7 @@ func NewWorkServ(ctx *utils.Context) *WorkServ {
24 24
 }
25 25
 
26 26
 // 保存 Work
27
-func (s *WorkServ) SaveWork(work *model.SysActivityAction)  (*model.SysActivityAction, error){
28
-		var newInfo *model.SysActivityAction
27
+func (s *WorkServ) SaveWork(work model.SysActivityAction)  (*model.SysActivityAction, error){
29 28
 		if work.ActivityId == "" {
30 29
 			return nil, utils.LogError("营销编号为空!")
31 30
 		}