Explorar el Código

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

zjxpcyc hace 6 años
padre
commit
6326e2cff0

+ 6
- 4
controllers/cases/equipment.go Ver fichero

@@ -4,12 +4,14 @@ import "spaceofcheng/services/models/model"
4 4
 
5 5
 // GetEquipmentList 获取体检设备列表
6 6
 func (c *CaseController) GetEquipmentList() {
7
-	cases := c.Context.Get("cases").([]model.SysUserCase)
8
-	caseIDs := c.GetCaseIDs(cases)
7
+	caseids := c.GetString("caseid")
8
+	if caseids == "" {
9
+		cases := c.Context.Get("cases").([]model.SysUserCase)
10
+		caseids = c.GetCaseIDs(cases)
11
+	}
9 12
 	page, _ := c.GetInt("page")
10 13
 	pageSize, _ := c.GetInt("pagesize")
11
-
12
-	list, err := c.dao.GetCaseEquipment(caseIDs, page, pageSize)
14
+	list, err := c.dao.GetCaseEquipment(caseids, page, pageSize)
13 15
 	if err != nil {
14 16
 		c.ResponseError(err)
15 17
 	}

+ 13
- 0
controllers/cases/key.go Ver fichero

@@ -48,6 +48,19 @@ func (c *CaseController) UnLockKey() {
48 48
 	c.ResponseJSON("解锁成功!")
49 49
 }
50 50
 
51
+// LockKey 绑定钥匙
52
+func (c *CaseController) LockKey() {
53
+	keyId := c.GetString(":keyid")
54
+	customerid := c.GetString(":customerid")
55
+	customername := c.GetString(":customername")
56
+	err := c.dao.LockKey(keyId, customerid, customername)
57
+	if err != nil {
58
+		c.ResponseError(err)
59
+	}
60
+	c.ResponseJSON("绑定成功!")
61
+
62
+}
63
+
51 64
 // DelKey 删除
52 65
 func (c *CaseController) DelKey() {
53 66
 	keyid := c.GetString(":keyid")

+ 63
- 0
controllers/cases/signin.go Ver fichero

@@ -4,6 +4,8 @@ import (
4 4
 	"spaceofcheng/services/controllers"
5 5
 	"spaceofcheng/services/models/model"
6 6
 	"spaceofcheng/services/service/cases"
7
+	"spaceofcheng/services/utils"
8
+	"errors"
7 9
 )
8 10
 
9 11
 // CaseController 信息
@@ -72,3 +74,64 @@ func (c *SigninController) AddSignin() {
72 74
 	c.ResponseJSON(res)
73 75
 }
74 76
 
77
+// GetSigninExcel 导出签到记录表
78
+func (c *SigninController) GetSigninExcel(){
79
+
80
+	selectType, err := c.GetInt("selectType")
81
+
82
+	// 案场
83
+	caseids := c.GetString("caseid")
84
+	if caseids == "" {
85
+		cases := c.Context.Get("cases").([]model.SysUserCase)
86
+		caseids = c.GetCaseIDs(cases)
87
+	}
88
+	
89
+	// 查询出数据
90
+	list,err := c.dao.GetSigninExcel(selectType,caseids)
91
+	if err != nil {
92
+		c.ResponseError(err)
93
+	}
94
+
95
+	excel, err := utils.NewTinyXLSXEngine()
96
+	if err != nil {
97
+		utils.LogError("初始化Excel服务失败: " + err.Error())
98
+		c.ResponseError(errors.New("初始化Excel服务失败"))
99
+	}
100
+
101
+	// 创建表头
102
+	excel.SetCell(excel.InsertRow(), []string{
103
+		"案场",
104
+		"签到时间",
105
+		"微信昵称",
106
+		"客户姓名",
107
+		"客户类型",
108
+		"手机号",
109
+	})
110
+
111
+	// 遍历数据
112
+	for _, item := range list {
113
+		row := excel.InsertRow()
114
+	
115
+		userTypeName := ""
116
+		if item.UserId == "" {
117
+			userTypeName = "前台用户"
118
+		}else {
119
+			userTypeName = "后台用户"
120
+		}
121
+
122
+		 dateToString := item.CreateDate.Format("2006-01-02 15:04:05")
123
+
124
+		excel.SetCell(row, []string{
125
+			item.CaseName,
126
+			dateToString,
127
+			item.CustomerName,
128
+			item.Name,
129
+			userTypeName,
130
+			item.Phone,
131
+		})
132
+	}
133
+	c.SaveToExcel("签到记录列表.xlsx", excel)
134
+
135
+}
136
+
137
+

+ 2
- 1
controllers/course/course.go Ver fichero

@@ -30,7 +30,8 @@ func (c *CourseController) GetCourseList() {
30 30
 	pageSize, _ := c.GetInt("pagesize")
31 31
 	name := c.GetString("name")
32 32
 	typeid := c.GetString("typeid")
33
-	courses, err := c.serv.GetCourseList(caseids, name, typeid, page, pageSize)
33
+	status := c.GetString("status")
34
+	courses, err := c.serv.GetCourseList(caseids, name, typeid, status, page, pageSize)
34 35
 	if err != nil {
35 36
 		c.ResponseError(err)
36 37
 	}

+ 9
- 2
controllers/luckdrawlist/luckdrawlist.go Ver fichero

@@ -70,24 +70,31 @@ func (c *LuckdrawlistController) GetLuckShareList() {
70 70
 
71 71
 func (c *LuckdrawlistController) GetVerifyList() {
72 72
 	luckdrawId := c.GetString(":luckdrawId")
73
+	cases := c.Context.Get("cases").([]model.SysUserCase)
74
+	caseids := c.GetCaseIDs(cases)
73 75
 	if luckdrawId == "" {
74 76
 		c.ResponseError(errors.New("无效二维码"))
75 77
 	}
76
-	luckdraw, err := c.dao.GetVerifyList(luckdrawId)
78
+	luckdraw, err := c.dao.GetVerifyList(luckdrawId, caseids)
77 79
 	if err != nil {
78 80
 		c.ResponseError(err)
79 81
 	}
82
+	if luckdraw == nil {
83
+		c.ResponseError(errors.New("您没有可以核销的奖品"))
84
+	}
80 85
 	c.ResponseJSON(luckdraw)
81 86
 }
82 87
 
83 88
 func (c *LuckdrawlistController) VerifyLuckdraw() {
84 89
 	sysUser := c.Context.Get("user").(model.SysUser)
85 90
 	userId := sysUser.UserId
91
+	cases := c.Context.Get("cases").([]model.SysUserCase)
92
+	caseids := c.GetCaseIDs(cases)
86 93
 	luckdrawId := c.GetString(":luckdrawId")
87 94
 	if luckdrawId == "" {
88 95
 		c.ResponseError(errors.New("无效二维码"))
89 96
 	}
90
-	err := c.dao.VerifyLuckdraw(luckdrawId, userId)
97
+	err := c.dao.VerifyLuckdraw(luckdrawId, caseids, userId)
91 98
 	if err != nil {
92 99
 		c.ResponseError(err)
93 100
 	}

+ 15
- 25
controllers/marketing/marketing.go Ver fichero

@@ -1,12 +1,11 @@
1 1
 package marketing
2 2
 
3
-import(
3
+import (
4 4
 	"spaceofcheng/services/controllers"
5
-	"spaceofcheng/services/service/marketing"
6 5
 	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service/marketing"
7 7
 )
8 8
 
9
-
10 9
 // CourseController 商品
11 10
 type MarketingController struct {
12 11
 	serv *marketing.MarketingServ
@@ -21,11 +20,11 @@ func (c *MarketingController) Constructor() {
21 20
 }
22 21
 
23 22
 // 获取 营销活动列表
24
-func (c *MarketingController) GetMarketingList(){
23
+func (c *MarketingController) GetMarketingList() {
25 24
 	page, _ := c.GetInt("page")
26 25
 	pageSize, _ := c.GetInt("pageSize")
27 26
 
28
-	marketings, err := c.serv.GetMarketingList(page,pageSize)
27
+	marketings, err := c.serv.GetMarketingList(page, pageSize)
29 28
 	if err != nil {
30 29
 		c.ResponseError(err)
31 30
 	}
@@ -42,13 +41,12 @@ func (c *MarketingController) SaveMarketing() {
42 41
 	activityName := c.GetString("activityName")
43 42
 	activityType := c.GetString("activityType")
44 43
 	resourceDesc := c.GetString("resourceDesc") // 活动描述
45
-	caseId := c.GetString("CaseId")
46 44
 
47 45
 	// 赋值
48 46
 	marketing.ActivityName = activityName
49 47
 	marketing.ActivityType = activityType
50 48
 
51
-	newInfo,_, err := c.serv.SaveMarketing(marketing,resourceDesc,caseId)
49
+	newInfo, _, err := c.serv.SaveMarketing(marketing, resourceDesc)
52 50
 	if err != nil {
53 51
 		c.ResponseError(err)
54 52
 	}
@@ -56,13 +54,12 @@ func (c *MarketingController) SaveMarketing() {
56 54
 	c.ResponseJSON(newInfo)
57 55
 }
58 56
 
59
-
60 57
 // GetMarketingById 根据activityId查询
61
-func (c *MarketingController) GetMarketingById(){
62
-	 activityId := c.GetString("activityId")
58
+func (c *MarketingController) GetMarketingById() {
59
+	activityId := c.GetString("activityId")
63 60
 
64
-	 info,err :=	c.serv.GetMarketingById(activityId)
65
-	 if err != nil {
61
+	info, err := c.serv.GetMarketingById(activityId)
62
+	if err != nil {
66 63
 		c.ResponseError(err)
67 64
 	}
68 65
 
@@ -70,17 +67,17 @@ func (c *MarketingController) GetMarketingById(){
70 67
 }
71 68
 
72 69
 // UpdateMarketing 修改数据
73
-func (c *MarketingController) UpdateMarketing(){
70
+func (c *MarketingController) UpdateMarketing() {
74 71
 	activity := model.SysActivity{}
75 72
 
76 73
 	// 获取值
77 74
 	activityName := c.GetString("activityName")
78 75
 	activityType := c.GetString("activityType")
79
-	
76
+
80 77
 	// 赋值
81 78
 	activity.ActivityName = activityName
82 79
 	activity.ActivityType = activityType
83
-	
80
+
84 81
 	err := c.serv.UpdateMarketing(activity)
85 82
 	if err != nil {
86 83
 		c.ResponseError(err)
@@ -89,7 +86,7 @@ func (c *MarketingController) UpdateMarketing(){
89 86
 }
90 87
 
91 88
 // DelMarketing 删除
92
-func (c *MarketingController) DelMarketing(){
89
+func (c *MarketingController) DelMarketing() {
93 90
 	activityId := c.GetString(":activityId")
94 91
 	err := c.serv.DelMarketing(activityId)
95 92
 	if err != nil {
@@ -99,7 +96,7 @@ func (c *MarketingController) DelMarketing(){
99 96
 }
100 97
 
101 98
 // DelMarketing 正常
102
-func (c *MarketingController) DelMarketingNormal(){
99
+func (c *MarketingController) DelMarketingNormal() {
103 100
 	activityId := c.GetString(":activityId")
104 101
 	err := c.serv.DelMarketingNormal(activityId)
105 102
 	if err != nil {
@@ -109,7 +106,7 @@ func (c *MarketingController) DelMarketingNormal(){
109 106
 }
110 107
 
111 108
 // DelMarketing 停用
112
-func (c *MarketingController) DelMarketingDisable(){
109
+func (c *MarketingController) DelMarketingDisable() {
113 110
 	activityId := c.GetString(":activityId")
114 111
 	err := c.serv.DelMarketingDisable(activityId)
115 112
 	if err != nil {
@@ -117,10 +114,3 @@ func (c *MarketingController) DelMarketingDisable(){
117 114
 	}
118 115
 	c.ResponseJSON("操作成功!")
119 116
 }
120
-
121
-
122
-
123
-
124
-
125
-
126
-

+ 1133
- 0
log/common.log
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


+ 5
- 1
models/card/card.go Ver fichero

@@ -320,13 +320,17 @@ func (m *CardDAO) GetCardWithCustomer(cardid string) (*CaseUsableCard, error) {
320 320
 // CustomerCardWithShare 我的卡券关联分享信息
321 321
 type CustomerCardWithShare struct {
322 322
 	model.TaCouponCard `xorm:"extends"`
323
+	CustomerCardId     string
324
+	CourseNum          int
325
+	JoinNum            int
326
+	CourseName         string
323 327
 	Share              *model.TaExperienceCardShare
324 328
 }
325 329
 
326 330
 // GetCardByCustomer 获取我的体验卡
327 331
 func (m *CardDAO) GetCardByCustomer(orgid, customerid string) ([]CustomerCardWithShare, error) {
328 332
 	var cards []CustomerCardWithShare
329
-	sql := `select * from ta_customer_card where status>? and customer_id=? and org_id=?`
333
+	sql := `select a.*,b.customer_course_id,b.course_num,b.join_num,b.course_name from ta_customer_card a left join ta_customer_course b on a.customer_card_id = b.source_id where a.status>? and a.customer_id=? and a.org_id=?`
330 334
 	err := m.db.Sql(sql, models.STATUS_DEL, customerid, orgid).Find(&cards)
331 335
 	if err != nil {
332 336
 		return nil, err

+ 2
- 1
models/cases/cases.go Ver fichero

@@ -74,7 +74,7 @@ func (m *CaseDAO) GetCaseByID(caseid string) (*model.SysCase, error) {
74 74
 func (m *CaseDAO) AddCase(caseinfo model.SysCase) (*model.SysCase, error) {
75 75
 	caseinfo.CaseId = utils.GetGUID()
76 76
 	caseinfo.CreateDate = time.Now()
77
-	caseinfo.Status = models.STATUS_NORMAL
77
+	// caseinfo.Status = models.STATUS_NORMAL
78 78
 	user := m.ctx.Get("user").(model.SysUser)
79 79
 	caseinfo.CreateUser = user.UserId
80 80
 	_, err := m.db.Insert(caseinfo)
@@ -90,6 +90,7 @@ func (m *CaseDAO) UpdateCase(caseinfo model.SysCase) error {
90 90
 		"case_address",
91 91
 		"case_tel",
92 92
 		"coordinate",
93
+		"status",
93 94
 	}
94 95
 	_, err := m.db.Cols(cols...).Where("case_id=?", caseinfo.CaseId).Update(caseinfo)
95 96
 	return err

+ 17
- 1
models/cases/key.go Ver fichero

@@ -7,6 +7,8 @@ import (
7 7
 	"strconv"
8 8
 	"strings"
9 9
 	"time"
10
+
11
+	"github.com/astaxie/beego"
10 12
 )
11 13
 
12 14
 const (
@@ -107,11 +109,25 @@ func (m *CaseDAO) DelKey(keyid string) error {
107 109
 
108 110
 // UnLockKey 解绑钥匙信息
109 111
 func (m *CaseDAO) UnLockKey(keyid string) error {
110
-	sql := `update ta_case_key_use set status=` + strconv.Itoa(STATUS_UNLOCK) + ` where key_id= '` + keyid + `'`
112
+	sql := `update ta_case_key_use set status=` + strconv.Itoa(STATUS_UNLOCK) + `, return_date =NOW() where key_id= '` + keyid + `'`
113
+	beego.Error(sql)
111 114
 	_, err := m.db.Exec(sql)
112 115
 	return err
113 116
 }
114 117
 
118
+// BindKeyToUser 绑定钥匙信息
119
+func (m *CaseDAO) BindKeyToUser(keyid, customerId, customerName string) error {
120
+	var bindKey = model.TaCaseKeyUse{}
121
+	bindKey.UseId = utils.GetGUID()
122
+	bindKey.UseDate = time.Now()
123
+	bindKey.Status = models.STATUS_NORMAL
124
+	bindKey.KeyId = keyid
125
+	bindKey.CustomerName = customerName
126
+	bindKey.CustomerId = customerId
127
+	_, err := m.db.Insert(bindKey)
128
+	return err
129
+}
130
+
115 131
 // GetKeyByNumRange 根据区间获取钥匙
116 132
 func (m *CaseDAO) GetKeyByNumRange(caseid, nums string) ([]model.TaCaseKey, error) {
117 133
 	var keys []model.TaCaseKey

+ 43
- 0
models/cases/signin.go Ver fichero

@@ -105,3 +105,46 @@ func (m *SigninDAO) AddSignin(signin model.TaCheckinRecord)(model.TaCheckinRecor
105 105
 	_,err := m.db.Insert(signin)
106 106
 	return signin,err
107 107
 }
108
+
109
+
110
+
111
+/**
112
+	 GetSigninExcel 根据条件查询签到记录
113
+			 条件:
114
+					 selectType: 今天,本周,本月,今年,全部
115
+					 caseid: 案场ID
116
+
117
+		ALL 				= -1 // 全部
118
+		TODAY 			= 0 // 今天
119
+		THIS_WEEK 	= 1 // 本周
120
+		THIS_MONTH 	= 2 // 本月
121
+		THIS_YEAR  	= 3 // 今年
122
+
123
+
124
+ **/
125
+ func (m *SigninDAO) GetSigninExcel(selectType int, caseid string) ([]SigninInfo, error) {
126
+	var signin []SigninInfo
127
+	var sql string
128
+	switch selectType {
129
+	case ALL:
130
+		sql = `select tcr.*,user_id from ta_checkin_record tcr LEFT JOIN ta_customer tc on tcr.customer_id = tc.customer_id where tcr.case_id in ('` +
131
+			strings.Replace(caseid, ",", "','", -1) + `') ORDER BY tcr.create_date DESC`
132
+	case TODAY:
133
+		sql = `select tcr.*,user_id from ta_checkin_record tcr LEFT JOIN ta_customer tc on tcr.customer_id = tc.customer_id where to_days(tcr.create_date) = to_days(now()) and tcr.case_id in ('` +
134
+			strings.Replace(caseid, ",", "','", -1) + `') ORDER BY tcr.create_date DESC`
135
+	case THIS_WEEK:
136
+		sql = `select tcr.*,user_id from ta_checkin_record tcr LEFT JOIN ta_customer tc on tcr.customer_id = tc.customer_id WHERE YEARWEEK(date_format(tcr.create_date,'%Y-%m-%d')) = YEARWEEK(now())  and tcr.case_id in ('` +
137
+			strings.Replace(caseid, ",", "','", -1) + `') ORDER BY tcr.create_date DESC`
138
+	case THIS_MONTH:
139
+		sql = `select tcr.*,user_id from ta_checkin_record tcr LEFT JOIN ta_customer tc on tcr.customer_id = tc.customer_id WHERE DATE_FORMAT(tcr.create_date,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') and tcr.case_id in ('` +
140
+			strings.Replace(caseid, ",", "','", -1) + `') ORDER BY tcr.create_date DESC`
141
+	case THIS_YEAR:
142
+		sql = `select tcr.*,user_id from ta_checkin_record tcr LEFT JOIN ta_customer tc on tcr.customer_id = tc.customer_id where YEAR(tcr.create_date)=YEAR(NOW()) and tcr.case_id in ('` +
143
+			strings.Replace(caseid, ",", "','", -1) + `') ORDER BY tcr.create_date DESC`
144
+	}
145
+
146
+	err := m.db.Sql(sql).Find(&signin)
147
+	return signin, err
148
+}
149
+
150
+

+ 96
- 96
models/cases/table.go Ver fichero

@@ -1,96 +1,96 @@
1
-package cases
2
-
3
-import (
4
-	"spaceofcheng/services/models"
5
-	"spaceofcheng/services/models/model"
6
-	"spaceofcheng/services/utils"
7
-	"strconv"
8
-	"strings"
9
-	"time"
10
-)
11
-
12
-// GetCaseTableCount 获取桌位总数
13
-func (m *CaseDAO) GetCaseTableCount(caseids string) (int, error) {
14
-	var tables []model.SysCaseTable
15
-	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
16
-	err := dao.Find(&tables)
17
-	return len(tables), err
18
-}
19
-
20
-// CaseTableInfo 案场桌位
21
-type CaseTableInfo struct {
22
-	model.SysCaseTable `xorm:"extends"`
23
-	AreaName           string
24
-	CaseName           string
25
-}
26
-
27
-// GetCaseTable 根据案场获取桌位
28
-func (m *CaseDAO) GetCaseTable(caseids string, page int, pageSize int) ([]CaseTableInfo, error) {
29
-	var tables []CaseTableInfo
30
-	sql := `select a.*,b.area_name,c.case_name from sys_case_table a 
31
-	inner join sys_case_area b on a.area_id=b.area_id
32
-	inner join sys_case c on a.case_id=c.case_id
33
-	where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and b.status>` + strconv.Itoa(models.STATUS_DEL) +
34
-		` and c.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
35
-		strings.Replace(caseids, ",", "','", -1) + `')`
36
-
37
-	err := m.db.Sql(sql).Find(&tables)
38
-	return tables, err
39
-}
40
-
41
-// GetCaseTableByAreaID 根据区域ID获取桌位信息
42
-func (m *CaseDAO) GetCaseTableByAreaID(areaid string) ([]model.SysCaseTable, error) {
43
-	var tables []model.SysCaseTable
44
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", areaid).Find(&tables)
45
-	return tables, err
46
-}
47
-
48
-// GetCaseTableByID 根据ID获取桌位
49
-func (m *CaseDAO) GetCaseTableByID(tableid string) (*model.SysCaseTable, error) {
50
-	var tables []model.SysCaseTable
51
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("table_id=?", tableid).Find(&tables)
52
-	if err != nil {
53
-		return nil, err
54
-	}
55
-	if len(tables) > 0 {
56
-		return &tables[0], nil
57
-	}
58
-	return nil, nil
59
-}
60
-
61
-// AddCaseTable 新增桌位
62
-func (m *CaseDAO) AddCaseTable(area *model.SysCaseTable) (*model.SysCaseTable, error) {
63
-	area.TableId = utils.GetGUID()
64
-	area.Status = models.STATUS_NORMAL
65
-	area.CreateDate = time.Now()
66
-	user := m.ctx.Get("user").(model.SysUser)
67
-	area.CreateUser = user.UserId
68
-	_, err := m.db.Insert(area)
69
-	return area, err
70
-}
71
-
72
-// UpdateCaseTable 修改桌位
73
-func (m *CaseDAO) UpdateCaseTable(area model.SysCaseTable) error {
74
-	var cols = []string{
75
-		"table_no",
76
-		"order",
77
-		"remark",
78
-		"case_id",
79
-		"area_id",
80
-	}
81
-	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
82
-	return err
83
-}
84
-
85
-// DelCaseTable 刪除桌位
86
-func (m *CaseDAO) DelCaseTable(tableid string) error {
87
-	var area = model.SysCaseTable{
88
-		TableId: tableid,
89
-		Status:  models.STATUS_DEL,
90
-	}
91
-	var cols = []string{
92
-		"status",
93
-	}
94
-	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
95
-	return err
96
-}
1
+package cases
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+	"time"
10
+)
11
+
12
+// GetCaseTableCount 获取桌位总数
13
+func (m *CaseDAO) GetCaseTableCount(caseids string) (int, error) {
14
+	var tables []model.SysCaseTable
15
+	dao := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
16
+	err := dao.Find(&tables)
17
+	return len(tables), err
18
+}
19
+
20
+// CaseTableInfo 案场桌位
21
+type CaseTableInfo struct {
22
+	model.SysCaseTable `xorm:"extends"`
23
+	AreaName           string
24
+	CaseName           string
25
+}
26
+
27
+// GetCaseTable 根据案场获取桌位
28
+func (m *CaseDAO) GetCaseTable(caseids string, page int, pageSize int) ([]CaseTableInfo, error) {
29
+	var tables []CaseTableInfo
30
+	sql := `select a.*,b.area_name,c.case_name from sys_case_table a 
31
+	inner join sys_case_area b on a.area_id=b.area_id
32
+	inner join sys_case c on a.case_id=c.case_id
33
+	where a.status>` + strconv.Itoa(models.STATUS_DEL) + ` and b.status>` + strconv.Itoa(models.STATUS_DEL) +
34
+		` and c.status>` + strconv.Itoa(models.STATUS_DEL) + ` and a.case_id in ('` +
35
+		strings.Replace(caseids, ",", "','", -1) + `') limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
36
+
37
+	err := m.db.Sql(sql).Find(&tables)
38
+	return tables, err
39
+}
40
+
41
+// GetCaseTableByAreaID 根据区域ID获取桌位信息
42
+func (m *CaseDAO) GetCaseTableByAreaID(areaid string) ([]model.SysCaseTable, error) {
43
+	var tables []model.SysCaseTable
44
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("area_id=?", areaid).Find(&tables)
45
+	return tables, err
46
+}
47
+
48
+// GetCaseTableByID 根据ID获取桌位
49
+func (m *CaseDAO) GetCaseTableByID(tableid string) (*model.SysCaseTable, error) {
50
+	var tables []model.SysCaseTable
51
+	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("table_id=?", tableid).Find(&tables)
52
+	if err != nil {
53
+		return nil, err
54
+	}
55
+	if len(tables) > 0 {
56
+		return &tables[0], nil
57
+	}
58
+	return nil, nil
59
+}
60
+
61
+// AddCaseTable 新增桌位
62
+func (m *CaseDAO) AddCaseTable(area *model.SysCaseTable) (*model.SysCaseTable, error) {
63
+	area.TableId = utils.GetGUID()
64
+	area.Status = models.STATUS_NORMAL
65
+	area.CreateDate = time.Now()
66
+	user := m.ctx.Get("user").(model.SysUser)
67
+	area.CreateUser = user.UserId
68
+	_, err := m.db.Insert(area)
69
+	return area, err
70
+}
71
+
72
+// UpdateCaseTable 修改桌位
73
+func (m *CaseDAO) UpdateCaseTable(area model.SysCaseTable) error {
74
+	var cols = []string{
75
+		"table_no",
76
+		"order",
77
+		"remark",
78
+		"case_id",
79
+		"area_id",
80
+	}
81
+	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
82
+	return err
83
+}
84
+
85
+// DelCaseTable 刪除桌位
86
+func (m *CaseDAO) DelCaseTable(tableid string) error {
87
+	var area = model.SysCaseTable{
88
+		TableId: tableid,
89
+		Status:  models.STATUS_DEL,
90
+	}
91
+	var cols = []string{
92
+		"status",
93
+	}
94
+	_, err := m.db.Cols(cols...).Where("table_id=?", area.TableId).Update(area)
95
+	return err
96
+}

+ 2
- 2
models/channel/channel.go Ver fichero

@@ -45,8 +45,8 @@ func (m *ChannelDAO) GetChannels(caseid string, page int, pageSize int) ([]Chann
45 45
 	select a.*,b.case_name 
46 46
 	from ta_channel a 
47 47
 	inner join sys_case b on a.case_id = b.case_id 
48
-	where a.case_id in('` + strings.Replace(caseid, ",", "','", -1) + `') and b.status> ` + strconv.Itoa(models.STATUS_DEL) + ` and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
49
-	sql += ` order by a.create_date desc limit ` + strconv.Itoa(page) + `, ` + strconv.Itoa(pageSize)
48
+	where a.case_id in('` + strings.Replace(caseid, ",", "','", -1) + `') and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
49
+	sql += ` order by a.create_date desc limit ` + strconv.Itoa(page-1) + `, ` + strconv.Itoa(pageSize)
50 50
 	err := m.db.Sql(sql).Find(&channels)
51 51
 	return channels, err
52 52
 }

+ 34
- 8
models/course/course.go Ver fichero

@@ -42,10 +42,10 @@ type CourseInfo struct {
42 42
 }
43 43
 
44 44
 // GetCourseList 获取课程列表
45
-func (m *CourseDAO) GetCourseList(caseids, name, typeid string, page, pageSize int) ([]CourseInfo, error) {
45
+func (m *CourseDAO) GetCourseList(caseids, name, typeid, status string, page, pageSize int) ([]CourseInfo, error) {
46 46
 	var courses []CourseInfo
47 47
 	sql := `select a.*,b.location_name from ta_course a left join td_cms_image_location b on a.location_id = b.location_id where a.case_id in ('` +
48
-		strings.Replace(caseids, ",", "','", -1) + `') and a.status>` + strconv.Itoa(models.STATUS_DEL)
48
+		strings.Replace(caseids, ",", "','", -1) + `')`
49 49
 
50 50
 	if name != "" {
51 51
 		sql += ` and a.course_name like '%` + name + `%'`
@@ -55,15 +55,24 @@ func (m *CourseDAO) GetCourseList(caseids, name, typeid string, page, pageSize i
55 55
 		sql += ` and a.location_id='` + typeid + `'`
56 56
 	}
57 57
 
58
+	if status != "" {
59
+		if status != "1" {
60
+			status = "0"
61
+		}
62
+		sql += ` and a.status=` + status
63
+	} else {
64
+		sql += ` and a.status>` + strconv.Itoa(models.STATUS_DEL)
65
+	}
66
+
58 67
 	sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
59 68
 	err := m.db.Sql(sql).Find(&courses)
60 69
 	return courses, err
61 70
 }
62 71
 
63 72
 // GetCourseCount 获取课程总数
64
-func (m *CourseDAO) GetCourseCount(caseids, name, typeid string) (int, error) {
73
+func (m *CourseDAO) GetCourseCount(caseids, name, typeid, status string) (int, error) {
65 74
 	var course []model.TaCourse
66
-	dao := m.db.Where("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").And("status>" + strconv.Itoa(models.STATUS_DEL))
75
+	dao := m.db.Where("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')")
67 76
 
68 77
 	if name != "" {
69 78
 		dao.And("course_name like '%" + name + "%'")
@@ -72,6 +81,16 @@ func (m *CourseDAO) GetCourseCount(caseids, name, typeid string) (int, error) {
72 81
 	if typeid != "" {
73 82
 		dao.And("location_id=?", typeid)
74 83
 	}
84
+
85
+	if status != "" {
86
+		if status != "1" {
87
+			status = "0"
88
+		}
89
+		dao.And("status=?", status)
90
+	} else {
91
+		dao.And("status>" + strconv.Itoa(models.STATUS_DEL))
92
+	}
93
+
75 94
 	err := dao.Find(&course)
76 95
 	if err != nil {
77 96
 		return 0, err
@@ -334,8 +353,9 @@ func (m *CourseDAO) AddCourseDetail(detail model.TaCourseDetail) (*model.TaCours
334 353
 func (m *CourseDAO) UpdateCourseDetail(detail model.TaCourseDetail) error {
335 354
 	var cols = []string{
336 355
 		"detail_name",
337
-		"begin_date",
338
-		"end_date",
356
+		"detail_desc",
357
+		// "begin_date",
358
+		// "end_date",
339 359
 	}
340 360
 	_, err := m.db.Cols(cols...).Where("detail_id=?", detail.DetailId).Update(detail)
341 361
 	return err
@@ -415,7 +435,10 @@ func (m *CourseDAO) DeleteScheduleByCourse(courseid string) error {
415 435
 // GetSelectCourseList 获取精选课程
416 436
 func (m *CourseDAO) GetSelectCourseList(orgid string) ([]CourseDetail, error) {
417 437
 	var courses []CourseDetail
418
-	sql := `select * from ta_course where is_select=` + strconv.Itoa(IS_SELECT) + ` and status=` + strconv.Itoa(models.STATUS_NORMAL) + ` and org_id='` + orgid + `'`
438
+	sql := `select * from ta_course where is_select=` + strconv.Itoa(IS_SELECT) + ` and status=` + strconv.Itoa(models.STATUS_NORMAL) + ` and org_id='` + orgid + `'
439
+	and course_id NOT in (
440
+		select course_id from ta_course_detail where begin_date<=NOW()
441
+	)`
419 442
 	err := m.db.Sql(sql).Find(&courses)
420 443
 	return courses, err
421 444
 }
@@ -423,7 +446,10 @@ func (m *CourseDAO) GetSelectCourseList(orgid string) ([]CourseDetail, error) {
423 446
 // GetCourseByLocation 根据位置获取课程信息
424 447
 func (m *CourseDAO) GetCourseByLocation(orgid, locationid string) ([]CourseDetail, error) {
425 448
 	var courses []CourseDetail
426
-	sql := `select * from ta_course where status=` + strconv.Itoa(models.STATUS_NORMAL) + ` and org_id='` + orgid + `' and location_id ='` + locationid + `'`
449
+	sql := `select * from ta_course where status=` + strconv.Itoa(models.STATUS_NORMAL) + ` and org_id='` + orgid + `' and location_id ='` + locationid + `' 
450
+	and course_id NOT in (
451
+		select course_id from ta_course_detail where begin_date<=NOW()
452
+	)`
427 453
 	err := m.db.Sql(sql).Find(&courses)
428 454
 	return courses, err
429 455
 }

+ 4
- 4
models/goods/orders.go Ver fichero

@@ -248,16 +248,16 @@ func (m *GoodsDAO) GetCustomerOrdersCount(custID string) (int, error) {
248 248
 }
249 249
 
250 250
 // GetOrdersCountByCase 根据案场获取订单信息
251
-func (m *GoodsDAO) GetOrdersCountByCase(caseid string) (int64, error) {
251
+func (m *GoodsDAO) GetOrdersCountByCase(caseid, userid string) (int64, error) {
252 252
 	order := new(model.TaGoodsOrders)
253
-	total, err := m.db.Where("case_id = ?", caseid).And("status>"+strconv.Itoa(models.STATUS_DEL)).SumInt(order, "orders_num")
253
+	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("status>"+strconv.Itoa(models.STATUS_DEL)).SumInt(order, "orders_num")
254 254
 	return total, err
255 255
 }
256 256
 
257 257
 // GetMonthOrdersCountByCase 获取案场本月的订单数量
258
-func (m *GoodsDAO) GetMonthOrdersCountByCase(caseid string) (int64, error) {
258
+func (m *GoodsDAO) GetMonthOrdersCountByCase(caseid, userid string) (int64, error) {
259 259
 	order := new(model.TaGoodsOrders)
260
-	total, err := m.db.Where("case_id = ?", caseid).And("status>"+strconv.Itoa(models.STATUS_DEL)).And("date_format(create_date,'%Y-%m')=date_format(NOW(),'%Y-%m')").SumInt(order, "orders_num")
260
+	total, err := m.db.Where("case_id = ?", caseid).And("user_id=?", userid).And("status>"+strconv.Itoa(models.STATUS_DEL)).And("date_format(create_date,'%Y-%m')=date_format(NOW(),'%Y-%m')").SumInt(order, "orders_num")
261 261
 	return total, err
262 262
 }
263 263
 

+ 3
- 2
models/luckdrawlist/luckdrawlist.go Ver fichero

@@ -84,7 +84,7 @@ func (m *LuckdrawDAO) GetLuckShareList(fromPhone, toPhone string, filters string
84 84
 	return luckShare, total, err
85 85
 }
86 86
 
87
-func (m *LuckdrawDAO) GetLuckdrawById(luckdrawId string) (*Luckdraw, error) {
87
+func (m *LuckdrawDAO) GetLuckdrawById(luckdrawId, caseids string) (*Luckdraw, error) {
88 88
 	var luckdraw []Luckdraw
89 89
 	sql := `SELECT
90 90
 	a.*,
@@ -102,7 +102,8 @@ FROM
102 102
 WHERE
103 103
 	 DATE_FORMAT( e.verification_start, '%Y-%m-%d' ) <= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
104 104
 	 AND DATE_FORMAT( e.verification_end, '%Y-%m-%d' ) >= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
105
-	 AND a.id = '` + luckdrawId + `'`
105
+	 AND a.id = '` + luckdrawId + `'
106
+	 and b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')`
106 107
 	err := m.db.Sql(sql).Find(&luckdraw)
107 108
 	if err != nil {
108 109
 		return nil, err

+ 27
- 45
models/marketing/marketing.go Ver fichero

@@ -1,10 +1,12 @@
1 1
 package marketing
2 2
 
3
-import(
3
+import (
4
+	"jcjy/demo/models"
4 5
 	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/utils"
6 7
 	"strconv"
7 8
 	"time"
9
+
8 10
 	"github.com/go-xorm/xorm"
9 11
 )
10 12
 
@@ -14,17 +16,10 @@ const (
14 16
 
15 17
 )
16 18
 
17
-// 状态
18
-const (
19
-	DELETE = -1 // 删除
20
-	NORMAL = 0 // 正常
21
-	DISABLE = 1 // 停用
22
-)
23
-
24 19
 // 赠券卡券
25 20
 const (
26
-	drink = 1 // 饮品通用卷
27
-	course = 2 // 课程通用卷
21
+	drink          = 1 // 饮品通用卷
22
+	course         = 2 // 课程通用卷
28 23
 	petty_diplomat = 3 // 小小外交官通用卷
29 24
 )
30 25
 
@@ -42,23 +37,23 @@ func NewMarketingDAO(ctx *utils.Context) *MarketingDAO {
42 37
 	}
43 38
 }
44 39
 
45
-// MarketingInfo 
40
+// MarketingInfo
46 41
 type MarketingInfo struct {
47 42
 	model.SysActivity `xorm:"extends"`
48
-	CaseName		 string
49
-	ActionId     string
50
-	ActiveType  string
51
-	ResourceType string
52
-	ResourceDesc string
53
-	Actions []model.SysActivityAction
43
+	CaseName          string
44
+	ActionId          string
45
+	ActiveType        string
46
+	ResourceType      string
47
+	ResourceDesc      string
48
+	Actions           []model.SysActivityAction
54 49
 }
55 50
 
56 51
 // GetMarketingList 查询所有
57
-func (m *MarketingDAO) GetMarketingList(page int, pageSize int) ([]MarketingInfo ,error){
52
+func (m *MarketingDAO) GetMarketingList(page int, pageSize int) ([]MarketingInfo, error) {
58 53
 
59 54
 	var news []MarketingInfo
60 55
 	//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)
56
+	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 58
 	err := m.db.Sql(sql).Find(&news)
64 59
 	return news, err
@@ -66,60 +61,53 @@ func (m *MarketingDAO) GetMarketingList(page int, pageSize int) ([]MarketingInfo
66 61
 }
67 62
 
68 63
 // GetMarketingCount 获取总数
69
-func (m *MarketingDAO) GetMarketingCount()(int64, error){
64
+func (m *MarketingDAO) GetMarketingCount() (int64, error) {
70 65
 	var total []int64
71
-	sql := `select count(*) as total from sys_activity`
66
+	sql := `select count(*) as total from sys_activity where status>` + strconv.Itoa(models.STATUS_DEL)
72 67
 	err := m.db.Sql(sql).Cols("total").Find(&total)
73
-	if err!=nil{
68
+	if err != nil {
74 69
 
75 70
 	}
76 71
 	return total[0], err
77 72
 }
78 73
 
79
-
80 74
 // AddMarketing 添加
81
-func (m *MarketingDAO) AddMarketing(activity model.SysActivity, caseId string) (*model.SysActivity, error) {
75
+func (m *MarketingDAO) AddMarketing(activity model.SysActivity) (*model.SysActivity, error) {
82 76
 	activity.ActivityId = utils.GetGUID()
83 77
 	activity.CreateDate = time.Now()
84 78
 	//activity.Status = models.STATUS_NORMAL
85
-	activity.Status = NORMAL // 状态为正常
79
+	activity.Status = models.STATUS_NORMAL // 状态为正常
86 80
 	org := m.ctx.Get("org").(model.SysOrg)
87 81
 	activity.OrgId = org.OrgId
88
-	activity.CaseId = caseId
89
-
90 82
 	_, err := m.db.Insert(&activity)
91 83
 
92 84
 	return &activity, err
93 85
 }
94 86
 
95
-
96 87
 // GetMarketingById 根据ID查询活动营销
97
-func (m *MarketingDAO) GetMarketingById(activityId string) (*model.SysActivity,error){
88
+func (m *MarketingDAO) GetMarketingById(activityId string) (*model.SysActivity, error) {
98 89
 
99 90
 	var activity []model.SysActivity
100
-	err := m.db.Where("activity_id=?",activityId).Find(&activity)
91
+	err := m.db.Where("activity_id=?", activityId).Find(&activity)
101 92
 	if err != nil {
102 93
 		return nil, err
103 94
 	}
104
-	if len(activity) >0 {
105
-		return &activity[0],nil
95
+	if len(activity) > 0 {
96
+		return &activity[0], nil
106 97
 	}
107
-	return nil,nil
108
-	
98
+	return nil, nil
99
+
109 100
 }
110 101
 
111 102
 // DelMarketing 修改状态 营销活动(删除,启用,停用)
112 103
 /**
113
- *	DELETE = -1 // 删除
114
-		NORMAL = 0 // 正常
115
-		DISABLE = 1 // 停用
116 104
  **/
117
-func (m *MarketingDAO) DelMarketing(activityId string,status int) error {
105
+func (m *MarketingDAO) DelMarketing(activityId string, status int) error {
118 106
 
119 107
 	var info = model.SysActivity{
120 108
 		ActivityId: activityId,
121 109
 		// Status:   models.STATUS_DEL,
122
-		Status:   status,
110
+		Status: status,
123 111
 	}
124 112
 	var cols = []string{
125 113
 		"status",
@@ -128,7 +116,6 @@ func (m *MarketingDAO) DelMarketing(activityId string,status int) error {
128 116
 	return err
129 117
 }
130 118
 
131
-
132 119
 // UpdateMarketing 修改 营销活动
133 120
 func (m *MarketingDAO) UpdateMarketing(activity model.SysActivity) error {
134 121
 	// var cols = []string{
@@ -146,8 +133,3 @@ func (m *MarketingDAO) UpdateMarketing(activity model.SysActivity) error {
146 133
 	_, err := m.db.Cols(cols...).Where("action_id=?", activity.ActivityId).Update(activity)
147 134
 	return err
148 135
 }
149
-
150
-
151
-
152
-
153
-

+ 1
- 0
models/message/cmscase.go Ver fichero

@@ -122,6 +122,7 @@ func (m *MessageDAO) UpdateCmsCase(cmscase model.TaCmsCase) error {
122 122
 		"is_all_course",
123 123
 		"status",
124 124
 		"sort",
125
+		"case_id",
125 126
 	}
126 127
 	_, err := m.db.Cols(col...).Where("cms_case_id=?", cmscase.CmsCaseId).Update(cmscase)
127 128
 	return err

+ 1
- 1
models/message/image.go Ver fichero

@@ -28,7 +28,7 @@ func (m *MessageDAO) GetImgListCount(orgid string) (int, error) {
28 28
 // GetImgByLocation 根据位置获取轮播图信息
29 29
 func (m *MessageDAO) GetImgByLocation(locationid, orgid string) ([]model.TaCmsImages, error) {
30 30
 	var imgs []model.TaCmsImages
31
-	err := m.db.Where("status>"+strconv.Itoa(models.STATUS_DEL)).And("org_id=?", orgid).And("location_id=?", locationid).Asc("sort").Find(&imgs)
31
+	err := m.db.Where("status="+strconv.Itoa(models.STATUS_NORMAL)).And("org_id=?", orgid).And("location_id=?", locationid).Asc("sort").Find(&imgs)
32 32
 	return imgs, err
33 33
 }
34 34
 

+ 1
- 1
models/statistics/cardcoupon.go Ver fichero

@@ -225,7 +225,7 @@ func (m *StatisticsDAO) CardCouponUsedStatistics(caseids, tel, name, receivetype
225 225
 							a.end_date,
226 226
 							a.receive_date,
227 227
 							a.receive_date as used_date,
228
-							a.verify_status
228
+							'used' as verify_status
229 229
 						FROM
230 230
 							ta_customer_card a
231 231
 						INNER JOIN ta_coupon_card_target b ON b.card_id = a.card_id

+ 5
- 5
models/system/user.go Ver fichero

@@ -231,7 +231,7 @@ func (m *UserDAO) DelUserMenu(userid string) error {
231 231
 
232 232
 // SaveUserMenu 保存用户对应的菜单信息
233 233
 func (m *UserDAO) SaveUserMenu(userid string) error {
234
-	sql := `insert into sys_user_menu(user_id,menu_id) select '` + userid + `', a.menu_id from sys_role_menu a inner join sys_user_role b on a.role_id = b.role_id inner join sys_menu c on c.menu_id = a.menu_id where b.user_id = '` + userid + `' and c.status>` + strconv.Itoa(models.STATUS_DEL)
234
+	sql := `insert into sys_user_menu(user_id,menu_id) select DISTINCT '` + userid + `', a.menu_id from sys_role_menu a inner join sys_user_role b on a.role_id = b.role_id inner join sys_menu c on c.menu_id = a.menu_id where b.user_id = '` + userid + `' and c.status>` + strconv.Itoa(models.STATUS_DEL)
235 235
 	_, err := m.db.Exec(sql)
236 236
 	return err
237 237
 }
@@ -282,12 +282,12 @@ func (m *UserDAO) SaveUserCase(usercase model.SysUserCase) error {
282 282
 // SaveUserCaseByUserTag 根据用户标签保存用户对应案场
283 283
 func (m *UserDAO) SaveUserCaseByUserTag(userid string) error {
284 284
 	sql := `insert into sys_user_case(user_id, case_id, case_name, is_belong, status, create_date) 
285
-	select c.user_id, a.case_id,a.case_name, 0,?,now() from sys_case a 
285
+	select DISTINCT c.user_id, a.case_id,a.case_name, 0,?,now() from sys_case a 
286 286
 	inner join sys_tag_case b on a.case_id = b.case_id
287 287
 	inner join sys_user_tag c on b.tag_id = c.tag_id
288 288
 	where c.user_id = ? and a.status > ` + strconv.Itoa(models.STATUS_DEL)
289 289
 
290
-	_, err := m.db.Exec(sql, userid, models.STATUS_DEL)
290
+	_, err := m.db.Exec(sql, models.STATUS_NORMAL, userid)
291 291
 	return err
292 292
 }
293 293
 
@@ -379,7 +379,7 @@ func (m *UserDAO) GetUserByName(userName string) (*model.SysUser, error) {
379 379
 func (m *UserDAO) GetUserByPhone(phone string) (*model.SysUser, error) {
380 380
 	user := model.SysUser{}
381 381
 
382
-	has, err := m.db.Where("phone=?", phone).Get(&user)
382
+	has, err := m.db.Where("phone=?", phone).And("status>?", models.STATUS_DEL).Get(&user)
383 383
 	if err != nil {
384 384
 		return nil, err
385 385
 	}
@@ -432,7 +432,7 @@ func (m *UserDAO) GetUserWithTypeByID(userID string) ([]UserWithType, error) {
432 432
 // CheckUserPhone 用户电话重复校验
433 433
 func (m *UserDAO) CheckUserPhone(userid, phone, orgid string) (bool, error) {
434 434
 	var users []model.SysUser
435
-	dao := m.db.Where("phone=?", phone).And("org_id=?", orgid)
435
+	dao := m.db.Where("phone=?", phone).And("org_id=?", orgid).And("status>?", models.STATUS_DEL)
436 436
 	if userid != "" {
437 437
 		dao.And("user_id <> '" + userid + "'")
438 438
 	}

+ 1
- 0
models/verify/verify.go Ver fichero

@@ -28,6 +28,7 @@ type MyCourse struct {
28 28
 	CaseName                     string
29 29
 	DetailName                   string
30 30
 	LocationName                 string
31
+	CustomerId                   string
31 32
 }
32 33
 
33 34
 func (m *VerifyDAO) GetCustomerCourseDetailById(id string) (*model.TaCustomerCourseDetail, error) {

+ 2
- 0
routers/common.go Ver fichero

@@ -138,6 +138,7 @@ func getCommonRoutes() beego.LinkNamespace {
138 138
 		// casekey 案场钥匙
139 139
 		beego.NSRouter("/case/key", &cases.CaseController{}, "get:GetKeyList"),
140 140
 		beego.NSRouter("/case/key", &cases.CaseController{}, "post:AddKeys"),
141
+		beego.NSRouter("/case/key/:keyid/:customerid/:customername", &cases.CaseController{}, "post:LockKey"),
141 142
 		beego.NSRouter("/case/unlock/:keyid", &cases.CaseController{}, "put:UnLockKey"),
142 143
 		beego.NSRouter("/case/key/:keyid", &cases.CaseController{}, "delete:DelKey"),
143 144
 
@@ -279,6 +280,7 @@ func getCommonRoutes() beego.LinkNamespace {
279 280
 		// 签到
280 281
 		beego.NSRouter("/case/signin", &cases.SigninController{}, "get:GetSigninWhere"),
281 282
 		beego.NSRouter("/case/signin", &cases.SigninController{}, "post:AddSignin"),
283
+		beego.NSRouter("/case/excelSignin", &cases.SigninController{}, "get:GetSigninExcel"),
282 284
 
283 285
 		// websocket
284 286
 		beego.NSRouter("/websocket/:grps/:id", &controllers.BaseController{}, "get:Ws"),

+ 8
- 0
service/cases/key.go Ver fichero

@@ -90,6 +90,14 @@ func (s *CaseServ) UnLockKey(keyid string) error {
90 90
 	}
91 91
 	return nil
92 92
 }
93
+func (s *CaseServ) LockKey(keyId, customerId, customerName string) error {
94
+	err := s.dao.BindKeyToUser(keyId, customerId, customerName)
95
+	if err != nil {
96
+		utils.LogError("绑定钥匙失败: " + err.Error())
97
+		return errors.New("绑定钥匙失败")
98
+	}
99
+	return nil
100
+}
93 101
 
94 102
 // DelKey 刪除
95 103
 func (s *CaseServ) DelKey(keyid string) error {

+ 13
- 0
service/cases/signin.go Ver fichero

@@ -112,3 +112,16 @@ func (s *SigninServ) AddSignin(signin model.TaCheckinRecord, caseId string, acti
112 112
 
113 113
 	return &info, err
114 114
 }
115
+
116
+// GetSigninExcel 根据条件查询出签到记录
117
+func (s *SigninServ) GetSigninExcel(selectType int, caseids string) ([]cases.SigninInfo, error) {
118
+
119
+	info,err := s.dao.GetSigninExcel(selectType,caseids)
120
+	if err != nil {
121
+		beego.Error(err)
122
+		return nil, err
123
+	}
124
+
125
+	return info,err
126
+}
127
+

+ 3
- 3
service/course/course.go Ver fichero

@@ -37,19 +37,19 @@ func NewCourseServ(ctx *utils.Context) *CourseServ {
37 37
 }
38 38
 
39 39
 // GetCourseList 获取课程列表
40
-func (s *CourseServ) GetCourseList(caseids, name, typeid string, page, pageSize int) (map[string]interface{}, error) {
40
+func (s *CourseServ) GetCourseList(caseids, name, typeid, status string, page, pageSize int) (map[string]interface{}, error) {
41 41
 	if pageSize == 0 {
42 42
 		pageSize = service.PAGENUM
43 43
 	}
44 44
 	if page == 0 {
45 45
 		page = 1
46 46
 	}
47
-	list, err := s.dao.GetCourseList(caseids, name, typeid, page, pageSize)
47
+	list, err := s.dao.GetCourseList(caseids, name, typeid, status, page, pageSize)
48 48
 	if err != nil {
49 49
 		utils.LogError("获取课程信息失败: " + err.Error())
50 50
 		return nil, errors.New("获取课程信息失败")
51 51
 	}
52
-	total, err := s.dao.GetCourseCount(caseids, name, typeid)
52
+	total, err := s.dao.GetCourseCount(caseids, name, status, typeid)
53 53
 	if err != nil {
54 54
 		utils.LogError("获取课程信息失败: " + err.Error())
55 55
 		return nil, errors.New("获取课程信息失败")

+ 3
- 1
service/customer/customer.go Ver fichero

@@ -14,6 +14,8 @@ import (
14 14
 	"spaceofcheng/services/utils"
15 15
 	"strconv"
16 16
 	"time"
17
+
18
+	"github.com/astaxie/beego"
17 19
 )
18 20
 
19 21
 // CustomerServ 系统处理
@@ -130,7 +132,7 @@ func (s *CustomerServ) BindWechatUser(userMap *model.TaUserMapping, phone string
130 132
 
131 133
 		// 更新用户手机号码信息及userid信息
132 134
 		customer, err := s.dao.GetCustWithWXByOpenID(wxInfo.OpenID)
133
-
135
+		beego.Error(customer)
134 136
 		newCust := model.TaCustomer{
135 137
 			CustomerId: customer.CustomerId,
136 138
 			Phone:      user.Phone,

+ 6
- 2
service/goods/orders.go Ver fichero

@@ -500,12 +500,16 @@ func (s *GoodsServ) GetCustomerOrders(page, pageSize int) (map[string]interface{
500 500
 
501 501
 // GetCaseOrdersNum 获取案场订单数量
502 502
 func (s *GoodsServ) GetCaseOrdersNum(caseid string) (map[string]interface{}, error) {
503
-	total, err := s.dao.GetOrdersCountByCase(caseid)
503
+	customer := s.ctx.Get("customer").(model.TaCustomer)
504
+	if customer.UserId == "" {
505
+		return nil, errors.New("您没有权限查看此数据!")
506
+	}
507
+	total, err := s.dao.GetOrdersCountByCase(caseid, customer.UserId)
504 508
 	if err != nil {
505 509
 		utils.LogError("获取案场订单数量失败: " + err.Error())
506 510
 		return nil, errors.New("获取案场信息失败")
507 511
 	}
508
-	monthtotal, err := s.dao.GetMonthOrdersCountByCase(caseid)
512
+	monthtotal, err := s.dao.GetMonthOrdersCountByCase(caseid, customer.UserId)
509 513
 	if err != nil {
510 514
 		utils.LogError("获取月案场订单数量失败: " + err.Error())
511 515
 		return nil, errors.New("获取案场信息失败")

+ 4
- 4
service/luckdrawlist/luckdrawlist.go Ver fichero

@@ -95,8 +95,8 @@ func (s *LuckdrawlistServ) GetLuckdrawList(caseID string, pagenavi ...int) ([]lu
95 95
 
96 96
 }
97 97
 
98
-func (s *LuckdrawlistServ) GetVerifyList(luckdrawId string) (*luckdrawlist.Luckdraw, error) {
99
-	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId)
98
+func (s *LuckdrawlistServ) GetVerifyList(luckdrawId, caseIDs string) (*luckdrawlist.Luckdraw, error) {
99
+	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId, caseIDs)
100 100
 	if err != nil {
101 101
 		utils.LogError("查询抽奖列表失败: " + err.Error())
102 102
 		return nil, errors.New("查询抽奖列表失败")
@@ -105,8 +105,8 @@ func (s *LuckdrawlistServ) GetVerifyList(luckdrawId string) (*luckdrawlist.Luckd
105 105
 
106 106
 }
107 107
 
108
-func (s *LuckdrawlistServ) VerifyLuckdraw(luckdrawId, userId string) error {
109
-	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId)
108
+func (s *LuckdrawlistServ) VerifyLuckdraw(luckdrawId, caseIDs, userId string) error {
109
+	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId, caseIDs)
110 110
 	err = s.dao.VerifyLuckdraw(luckdrawId)
111 111
 	if err != nil {
112 112
 		utils.LogError("核销失败: " + err.Error())

+ 26
- 16
service/marketing/marketing.go Ver fichero

@@ -1,8 +1,10 @@
1 1
 package marketing
2 2
 
3 3
 import (
4
+	"jcjy/demo/models"
4 5
 	"spaceofcheng/services/models/marketing"
5 6
 	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/models/system"
6 8
 	"spaceofcheng/services/service"
7 9
 	"spaceofcheng/services/utils"
8 10
 
@@ -11,17 +13,19 @@ import (
11 13
 
12 14
 // MarketingServ 系统处理
13 15
 type MarketingServ struct {
14
-	ctx  *utils.Context
15
-	dao  *marketing.MarketingDAO
16
-	wdao *marketing.WorkDAO
16
+	ctx     *utils.Context
17
+	dao     *marketing.MarketingDAO
18
+	wdao    *marketing.WorkDAO
19
+	userdao *system.UserDAO
17 20
 }
18 21
 
19 22
 // NewMarketingServ 初始化
20 23
 func NewMarketingServ(ctx *utils.Context) *MarketingServ {
21 24
 	return &MarketingServ{
22
-		ctx: ctx,
23
-		dao: marketing.NewMarketingDAO(ctx),
24
-		wdao: marketing.NewWorkDAO(ctx),
25
+		ctx:     ctx,
26
+		dao:     marketing.NewMarketingDAO(ctx),
27
+		wdao:    marketing.NewWorkDAO(ctx),
28
+		userdao: system.NewUserDAO(ctx),
25 29
 	}
26 30
 }
27 31
 
@@ -55,14 +59,20 @@ func (s *MarketingServ) GetMarketingList(page int, pageSize int) (map[string]int
55 59
 /**
56 60
 * resource_desc 活动描述
57 61
  */
58
-func (s *MarketingServ) SaveMarketing(activity model.SysActivity, resourceDesc string, caseId string) (*model.SysActivity, *model.SysActivityAction, error) {
62
+func (s *MarketingServ) SaveMarketing(activity model.SysActivity, resourceDesc string) (*model.SysActivity, *model.SysActivityAction, error) {
59 63
 
60 64
 	var newInfo *model.SysActivity
61 65
 	var newWoke *model.SysActivityAction
62 66
 
63
-	var err error
67
+	user := s.ctx.Get("user").(model.SysUser)
68
+
69
+	caseinfo, err := s.userdao.GetUserBelongCase(user.UserId)
70
+	if err != nil {
71
+		return nil, nil, err
72
+	}
73
+	activity.CaseId = caseinfo.CaseId
64 74
 	// 存储 营销活动
65
-	newInfo, err = s.dao.AddMarketing(activity,caseId)
75
+	newInfo, err = s.dao.AddMarketing(activity)
66 76
 	if err != nil {
67 77
 		return nil, nil, err
68 78
 	}
@@ -97,7 +107,7 @@ func (s *MarketingServ) GetMarketingById(activityId string) (*model.SysActivity,
97 107
 	if info == nil {
98 108
 		return nil, utils.LogError("不存在营销信息!")
99 109
 	}
100
-	if info.Status == marketing.DELETE {
110
+	if info.Status == models.STATUS_DEL {
101 111
 		return nil, utils.LogError("营销信息已被删除!")
102 112
 	}
103 113
 
@@ -117,10 +127,10 @@ func (s *MarketingServ) DelMarketing(activityId string) error {
117 127
 		return err
118 128
 	}
119 129
 	// 判断状态是否被删除
120
-	if info.Status == marketing.DELETE {
130
+	if info.Status == models.STATUS_DEL {
121 131
 		return utils.LogError("营销状态异常")
122 132
 	}
123
-	err = s.dao.DelMarketing(activityId, marketing.DELETE)
133
+	err = s.dao.DelMarketing(activityId, models.STATUS_DEL)
124 134
 	return err
125 135
 
126 136
 }
@@ -137,10 +147,10 @@ func (s *MarketingServ) DelMarketingNormal(activityId string) error {
137 147
 		return err
138 148
 	}
139 149
 	// 判断状态是否已经是正常
140
-	if info.Status == marketing.NORMAL {
150
+	if info.Status == models.STATUS_NORMAL {
141 151
 		return utils.LogError("营销状态异常")
142 152
 	}
143
-	err = s.dao.DelMarketing(activityId, marketing.NORMAL)
153
+	err = s.dao.DelMarketing(activityId, models.STATUS_NORMAL)
144 154
 	return err
145 155
 
146 156
 }
@@ -157,10 +167,10 @@ func (s *MarketingServ) DelMarketingDisable(activityId string) error {
157 167
 		return err
158 168
 	}
159 169
 	// 判断状态是否已经是停用
160
-	if info.Status == marketing.DISABLE {
170
+	if info.Status == models.STATUS_READY {
161 171
 		return utils.LogError("营销状态异常")
162 172
 	}
163
-	err = s.dao.DelMarketing(activityId, marketing.DISABLE)
173
+	err = s.dao.DelMarketing(activityId, models.STATUS_READY)
164 174
 	return err
165 175
 
166 176
 }

+ 7
- 1
service/message/image.go Ver fichero

@@ -71,12 +71,18 @@ func (s *MessageServ) SaveImg(imginfo model.TaCmsImages) (*model.TaCmsImages, er
71 71
 	if imginfo.ForwardType == ForwardTypeUrl && imginfo.ForwardUrl == "" {
72 72
 		return nil, errors.New("跳转地址不允许为空!")
73 73
 	}
74
-
74
+<<<<<<< HEAD
75 75
 	if imginfo.ForwardType == ForwardTypeCourse && imginfo.CaseId == "" {
76
+=======
77
+
78
+	if imginfo.ForwardType == ForwardTypeCourse && imginfo.ForwardResourceId == "" {
79
+>>>>>>> e764b3b931d583be9d2c311ab12132dd234f3ae0
76 80
 		return nil, errors.New("跳转资源不允许为空!")
77 81
 	}
78 82
 
79 83
 	if imginfo.ImageId == "" {
84
+		org := s.ctx.Get("org").(model.SysOrg)
85
+		imginfo.OrgId = org.OrgId
80 86
 		newinfo, err := s.dao.AddCmsImg(imginfo)
81 87
 		if err != nil {
82 88
 			utils.LogError("保存图片信息失败: " + err.Error())

+ 29
- 13
service/user.go Ver fichero

@@ -74,18 +74,18 @@ func (s *UserServ) GetCurrentEnvVars() (map[string]interface{}, error) {
74 74
 	user.Pwd = ""
75 75
 	// 当前用户案场
76 76
 	sessionCase := s.ctx.Get("cases").([]model.SysUserCase)
77
-	caseIDs := ""
78
-	for _, value := range sessionCase {
79
-		if caseIDs != "" {
80
-			caseIDs = caseIDs + ","
81
-		}
82
-		caseIDs = caseIDs + value.CaseId
83
-	}
84
-	cases, err := s.casedao.GetCaseByIDs(caseIDs)
85
-	if err != nil {
86
-		beego.Error(err)
87
-		return nil, err
88
-	}
77
+	// caseIDs := ""
78
+	// for _, value := range sessionCase {
79
+	// 	if caseIDs != "" {
80
+	// 		caseIDs = caseIDs + ","
81
+	// 	}
82
+	// 	caseIDs = caseIDs + value.CaseId
83
+	// }
84
+	// cases, err := s.casedao.GetCaseByIDs(caseIDs)
85
+	// if err != nil {
86
+	// 	beego.Error(err)
87
+	// 	return nil, err
88
+	// }
89 89
 	// 当前用户角色
90 90
 	roles, err := s.dao.GetUserRole(user.UserId)
91 91
 	if err != nil {
@@ -101,7 +101,7 @@ func (s *UserServ) GetCurrentEnvVars() (map[string]interface{}, error) {
101 101
 
102 102
 	rtn := map[string]interface{}{
103 103
 		"user":      user,
104
-		"cases":     cases,
104
+		"cases":     sessionCase,
105 105
 		"roles":     roles,
106 106
 		"menus":     menus,
107 107
 		"clienturl": beego.AppConfig.String("clienturl"),
@@ -173,6 +173,15 @@ func (s *UserServ) SaveUser(user system.SysUserForm) (*model.SysUser, error) {
173 173
 	var err error
174 174
 	var newUSer *model.SysUser
175 175
 
176
+	if user.UserName == "" {
177
+		return nil, errors.New("用户名不允许为空!")
178
+	}
179
+	if user.RealName == "" {
180
+		return nil, errors.New("用户真实姓名不允许为空!")
181
+	}
182
+	if user.Phone == "" {
183
+		return nil, errors.New("用户手机号不能为空!")
184
+	}
176 185
 	// 手机号码与用户名校验
177 186
 	var isok bool
178 187
 	isok, err = s.dao.CheckUserName(user.UserId, user.UserName, user.OrgId)
@@ -251,6 +260,13 @@ func (s *UserServ) SaveUser(user system.SysUserForm) (*model.SysUser, error) {
251 260
 		beego.Error(err)
252 261
 		return nil, err
253 262
 	}
263
+
264
+	// 保存用户标签案场信息
265
+	err = s.dao.SaveUserCaseByUserTag(newUSer.UserId)
266
+	if err != nil {
267
+		beego.Error(err)
268
+		return nil, err
269
+	}
254 270
 	newUSer.Pwd = ""
255 271
 
256 272
 	// 保存用户后判断用户是否在客户表中,如果存在,更新

+ 11
- 7
service/verify/verify.go Ver fichero

@@ -74,22 +74,26 @@ func (s *VerifyServ) GetCustomerCourseDetailByTel(tel, caseids string, page, pag
74 74
 	}
75 75
 	customerDetail, err := s.dao.GetCustomerCourseListByTel(tel, caseids, page, pageSize)
76 76
 	if err != nil {
77
-		utils.LogError("获取列表失败: " + err.Error())
78
-		return nil, errors.New("获取列表失败")
77
+		utils.LogError("获取课程列表失败: " + err.Error())
78
+		return nil, errors.New("获取课程列表失败")
79 79
 	}
80 80
 	if len(customerDetail) == 0 {
81
-		return nil, errors.New("获取列表失败")
81
+<<<<<<< HEAD
82
+		return nil, errors.New("今日无可核销课程")
83
+=======
84
+		return nil, nil
85
+>>>>>>> e764b3b931d583be9d2c311ab12132dd234f3ae0
82 86
 	}
83 87
 	customerID := customerDetail[0].CustomerId
84 88
 	total, err := s.dao.GetCustomerCourseListByTelCount(tel, caseids)
85 89
 	if err != nil {
86
-		utils.LogError("获取列表失败: " + err.Error())
87
-		return nil, errors.New("获取列表失败")
90
+		utils.LogError("获取列表数量失败: " + err.Error())
91
+		return nil, errors.New("获取列表数量失败")
88 92
 	}
89 93
 	customer, err := s.cdao.GetCustomerByID(customerID)
90 94
 	if err != nil {
91
-		utils.LogError("获取列表失败: " + err.Error())
92
-		return nil, errors.New("获取列表失败")
95
+		utils.LogError("获取客户详情: " + err.Error())
96
+		return nil, errors.New("获取客户详情")
93 97
 	}
94 98
 	return map[string]interface{}{
95 99
 		"list":         customerDetail,