zjxpcyc 6 år sedan
förälder
incheckning
45b267717f

+ 45
- 0
controllers/bodychecklist/bodychecklist.go Visa fil

@@ -0,0 +1,45 @@
1
+package bodychecklist
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/service/bodychecklist"
6
+)
7
+
8
+// BodychecklistController 商品
9
+type BodychecklistController struct {
10
+	serv *bodychecklist.BodychecklistServ
11
+	controllers.BaseController
12
+}
13
+
14
+// Constructor 初始化 Controller
15
+// @Title Constructor
16
+// @Description 初始化 Controller, 系统自动调用
17
+func (c *BodychecklistController) Constructor() {
18
+	c.serv = bodychecklist.NewBodychecklistServ(c.Context)
19
+}
20
+
21
+func (c *BodychecklistController) GetBodyCheckList() {
22
+	caseid := c.GetString("caseid")
23
+	phone := c.GetString("phone")
24
+	customerName := c.GetString("customerName")
25
+	page, _ := c.GetInt("page")
26
+	pagesize, _ := c.GetInt("pagesize")
27
+	if page < 0 {
28
+		page = 1
29
+	}
30
+
31
+	if pagesize <= 0 {
32
+		pagesize = 10
33
+	}
34
+	list, total, err := c.serv.GetBodyCheckList(caseid, phone, customerName, page, pagesize)
35
+	if err != nil {
36
+		c.ResponseError(err)
37
+	}
38
+
39
+	c.ResponseJSON(map[string]interface{}{
40
+		"list":     list,
41
+		"page":     page,
42
+		"pagesize": pagesize,
43
+		"pagenum":  total,
44
+	})
45
+}

+ 28
- 10
controllers/gymcard/gymcard.go Visa fil

@@ -1,10 +1,14 @@
1 1
 package gymcard
2 2
 
3 3
 import (
4
+	"encoding/json"
5
+	"errors"
6
+	"net/http"
4 7
 	"spaceofcheng/services/controllers"
5 8
 	gym "spaceofcheng/services/models/gymcard"
6 9
 	"spaceofcheng/services/models/model"
7 10
 	"spaceofcheng/services/service/gymcard"
11
+	"spaceofcheng/services/utils"
8 12
 )
9 13
 
10 14
 // GymcardController 信息
@@ -22,18 +26,26 @@ func (c *GymcardController) Constructor() {
22 26
 
23 27
 // GetGymcardList 后台获取游泳健身卡列表
24 28
 func (c *GymcardController) GetGymcardList() {
25
-	caseIDs := c.GetString("caseid")
26
-	if caseIDs == "" {
27
-		cases := c.Context.Get("cases").([]model.SysUserCase)
28
-		caseIDs = c.GetCaseIDs(cases)
29
-	}
29
+	caseid := c.GetString("caseid")
30 30
 	page, _ := c.GetInt("page")
31
-	pageSize, _ := c.GetInt("pagesize")
32
-	list, err := c.dao.GetGymcardList(caseIDs, page, pageSize)
31
+	pagesize, _ := c.GetInt("pagesize")
32
+	if page < 0 {
33
+		page = 1
34
+	}
35
+
36
+	if pagesize <= 0 {
37
+		pagesize = 10
38
+	}
39
+	list, total, err := c.dao.GetGymcardList(caseid, page, pagesize)
33 40
 	if err != nil {
34 41
 		c.ResponseError(err)
35 42
 	}
36
-	c.ResponseJSON(list)
43
+	c.ResponseJSON(map[string]interface{}{
44
+		"list":     list,
45
+		"page":     page,
46
+		"pagesize": pagesize,
47
+		"pagenum":  total,
48
+	})
37 49
 }
38 50
 
39 51
 // GetGymcardListByCustomerId 根据客户id获取C端客户所有的健身卡
@@ -80,10 +92,16 @@ func (c *GymcardController) GetCustomerGymByPhone() {
80 92
 // SaveGymcard 保存游泳健身卡
81 93
 func (c *GymcardController) SaveGymcard() {
82 94
 	gymCard := gym.Gymcard{}
83
-	if err := c.ParseForm(&gymCard); err != nil {
84
-		c.ResponseError(err)
95
+	jsnStr := c.GetString("info")
96
+	if jsnStr == "" {
97
+		c.ResponseError(errors.New("未接收到保存内容"))
98
+	}
99
+	if err := json.Unmarshal([]byte(jsnStr), &gymCard); err != nil {
100
+		utils.LogError("接收卡信息失败: " + err.Error())
101
+		c.ResponseError(errors.New("接收参数失败"), http.StatusInternalServerError)
85 102
 	}
86 103
 	newGymcard, err := c.dao.SaveGymcard(gymCard)
104
+
87 105
 	if err != nil {
88 106
 		c.ResponseError(err)
89 107
 	}

+ 0
- 3170
log/common.log
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 39
- 4
models/bodychecklist/bodychecklist.go Visa fil

@@ -1,8 +1,12 @@
1 1
 package bodychecklist
2 2
 
3 3
 import (
4
+	"fmt"
5
+	"spaceofcheng/services/models"
4 6
 	"spaceofcheng/services/models/model"
5 7
 	"spaceofcheng/services/utils"
8
+	"strconv"
9
+	"strings"
6 10
 
7 11
 	"github.com/go-xorm/xorm"
8 12
 )
@@ -29,7 +33,38 @@ type BodyCheck struct {
29 33
 	Phone             string
30 34
 }
31 35
 
32
-// func (m *BodychecklistDAO) GetBodychecklist(caseid, phone, customerName string, page, pageSize int) ([]BodyCheck, error) {
33
-// 	var bodycheck []BodyCheck
34
-// 	sql:=``
35
-// }
36
+func (m *BodychecklistDAO) GetBodychecklist(phone, customerName string, filters []string, limit []int) ([]BodyCheck, int64, error) {
37
+	var bodycheck []BodyCheck
38
+	filterString := ""
39
+	if len(filters) > 0 {
40
+		filterString = strings.Join(filters, " and ")
41
+		filterString += " and "
42
+	}
43
+	sql := `SELECT
44
+	a.*,
45
+	b.phone,
46
+	b.customer_name,
47
+	c.case_name,
48
+CASE
49
+	b.sex 
50
+	WHEN 1 THEN
51
+	'男' ELSE '女' 
52
+	END AS sex 
53
+FROM
54
+	ta_body_check a
55
+	INNER JOIN ta_customer b ON a.user_id = b.customer_id
56
+	INNER JOIN sys_case c ON c.case_id = a.case_id
57
+	where and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
58
+	if phone != "" {
59
+		sql += `and b.phone = '` + phone + `'`
60
+	}
61
+	if customerName != "" {
62
+		sql += `and b.customerName like concat('%','` + customerName + `','%')`
63
+	}
64
+	sql += ` order by a.create_date desc`
65
+	total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&bodycheck, fmt.Sprintf(sql, filterString), limit)
66
+	if err != nil {
67
+		return nil, 0, err
68
+	}
69
+	return bodycheck, total, err
70
+}

+ 1
- 1
models/channel/channel.go Visa fil

@@ -46,7 +46,7 @@ func (m *ChannelDAO) GetChannels(caseid string, page int, pageSize int) ([]Chann
46 46
 	from ta_channel a 
47 47
 	inner join sys_case b on a.case_id = b.case_id 
48 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-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
49
+	sql += ` order by a.create_date desc limit ` + strconv.Itoa(page) + `, ` + strconv.Itoa(pageSize)
50 50
 	err := m.db.Sql(sql).Find(&channels)
51 51
 	return channels, err
52 52
 }

+ 26
- 14
models/gymcard/gymcard.go Visa fil

@@ -1,6 +1,7 @@
1 1
 package gymcard
2 2
 
3 3
 import (
4
+	"fmt"
4 5
 	"spaceofcheng/services/models"
5 6
 	"spaceofcheng/services/models/model"
6 7
 	"spaceofcheng/services/utils"
@@ -44,25 +45,34 @@ type Gymcard struct {
44 45
 }
45 46
 
46 47
 // GetGymcard 根据案场id获取游泳健身卡列表
47
-func (m *GymcardDAO) GetGymcard(caseid string, page, pageSize int) ([]Gymcard, error) {
48
+func (m *GymcardDAO) GetGymcard(filters []string, limit []int) ([]Gymcard, int64, error) {
48 49
 	var gymcard []Gymcard
50
+	filterString := ""
51
+	if len(filters) > 0 {
52
+		filterString = strings.Join(filters, " and ")
53
+		filterString += " and "
54
+	}
55
+
49 56
 	sql := `SELECT
50 57
 	a.*,
51 58
 	b.card_image_url,
52 59
 	c.card_share_info,
53 60
 	c.card_use_instruction,
54
-	c.card_use_rule
61
+	c.card_use_rule,
62
+	d.channel_id
55 63
 FROM
56 64
 	ta_gym_card a
57 65
 	INNER JOIN ta_card_image b ON a.gym_card_id = b.gym_card_id
58 66
 	INNER JOIN ta_card_share c ON a.gym_card_id = c.gym_card_id
59 67
 	INNER JOIN ta_card_coupon_channel d ON a.gym_card_id = d.card_coupon_id
60
-	where a.case_id in('` + strings.Replace(caseid, ",", "','", -1) + `')
61
-	and  a.status > ` + strconv.Itoa(models.STATUS_DEL) + `
62
-	and d.card_coupon_type = '` + models.GIVE_GIFT_GYM + `'`
63
-	sql += ` order by a.create_date desc limit ` + strconv.Itoa(page) + `, ` + strconv.Itoa(pageSize)
64
-	err := m.db.Sql(sql).Find(&gymcard)
65
-	return gymcard, err
68
+	where %s a.status > ` + strconv.Itoa(models.STATUS_DEL)
69
+	sql += ` order by a.create_date desc `
70
+	total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&gymcard, fmt.Sprintf(sql, filterString), limit)
71
+	if err != nil {
72
+		return nil, 0, err
73
+	}
74
+
75
+	return gymcard, total, nil
66 76
 }
67 77
 
68 78
 // GetGymcardCount 根据案场id获取游泳健身卡数量
@@ -92,11 +102,13 @@ func (m *GymcardDAO) GetGymcardById(gymcardId string) (*Gymcard, error) {
92 102
 	b.card_image_url,
93 103
 	c.card_share_info,
94 104
 	c.card_use_instruction,
95
-	c.card_use_rule
105
+	c.card_use_rule,
106
+	d.channel_id
96 107
 FROM
97 108
 	ta_gym_card a
98 109
 	INNER JOIN ta_card_image b ON a.gym_card_id = b.gym_card_id
99 110
 	INNER JOIN ta_card_share c ON a.gym_card_id = c.gym_card_id
111
+	INNER JOIN ta_card_coupon_channel d ON a.gym_card_id = d.card_coupon_id
100 112
 	where a.gym_card_id = '` + gymcardId + `'
101 113
 	and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
102 114
 	err := m.db.Sql(sql).Find(&gymcard)
@@ -116,7 +128,7 @@ func (m *GymcardDAO) AddGymcard(gymcard model.TaGymCard) (model.TaGymCard, error
116 128
 	gymcard.UsedCount = 0
117 129
 	gymcard.Status = models.STATUS_NORMAL
118 130
 	gymcard.CreateDate = time.Now()
119
-	_, err := m.db.Insert(gymcard)
131
+	_, err := m.db.Insert(&gymcard)
120 132
 	return gymcard, err
121 133
 }
122 134
 
@@ -128,7 +140,7 @@ func (m *GymcardDAO) AddCardChannel(gymcardId, channelId string) error {
128 140
 	cardChannel.CardCouponType = models.GIVE_GIFT_GYM
129 141
 	cardChannel.ChannelId = channelId
130 142
 	cardChannel.Status = models.STATUS_NORMAL
131
-	_, err := m.db.Insert(cardChannel)
143
+	_, err := m.db.Insert(&cardChannel)
132 144
 	return err
133 145
 
134 146
 }
@@ -141,7 +153,7 @@ func (m *GymcardDAO) AddGymcardImg(gymcardId, imgUrl string) error {
141 153
 	cardImg.GymCardId = gymcardId
142 154
 	cardImg.Sort = 1
143 155
 	cardImg.Status = models.STATUS_NORMAL
144
-	_, err := m.db.Insert(cardImg)
156
+	_, err := m.db.Insert(&cardImg)
145 157
 	return err
146 158
 }
147 159
 
@@ -154,7 +166,7 @@ func (m *GymcardDAO) AddGymcardShare(gymcardId, cardShareInfo, cardUseRule, card
154 166
 	cardShare.CardUseInstruction = cardUseInstraction
155 167
 	cardShare.CardUseRule = cardUseRule
156 168
 	cardShare.Status = models.STATUS_NORMAL
157
-	_, err := m.db.Insert(cardShare)
169
+	_, err := m.db.Insert(&cardShare)
158 170
 	return err
159 171
 }
160 172
 
@@ -227,7 +239,7 @@ func (m *GymcardDAO) EditGymcardImg(gymcardId, imgUrl string) error {
227 239
 		CardImageUrl: imgUrl,
228 240
 	}
229 241
 	var cols = []string{
230
-		"img_url",
242
+		"card_image_url",
231 243
 	}
232 244
 	_, err := m.db.Cols(cols...).Where("gym_card_id = ?", cardImg.GymCardId).Update(cardImg)
233 245
 	return err

+ 31
- 0
models/luckdrawlist/luckdrawlist.go Visa fil

@@ -0,0 +1,31 @@
1
+package luckdrawlist
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/utils"
6
+
7
+	"github.com/go-xorm/xorm"
8
+)
9
+
10
+// LuckdrawDAO 当前数据库操作对象
11
+type LuckdrawDAO struct {
12
+	ctx *utils.Context
13
+	db  *xorm.Session
14
+}
15
+
16
+// NewLuckdrawDAO New Inst
17
+func NewLuckdrawDAO(ctx *utils.Context) *LuckdrawDAO {
18
+	return &LuckdrawDAO{
19
+		ctx: ctx,
20
+		db:  ctx.DB,
21
+	}
22
+}
23
+
24
+type Luckdraw struct {
25
+	model.TaLuckdrawRecord `xorm:"extends"`
26
+	CaseName               string
27
+	ActivitName            string
28
+	Name                   string
29
+	CustomerName           string
30
+	Phone                  string
31
+}

+ 2
- 2
models/model/ta_gym_card.go Visa fil

@@ -8,8 +8,8 @@ type TaGymCard struct {
8 8
 	GymCardId   string    `xorm:"not null pk VARCHAR(64)"`
9 9
 	GymTypeId   string    `xorm:"VARCHAR(64)"`
10 10
 	GymCardName string    `xorm:"VARCHAR(128)"`
11
-	Price       float32   `xorm:"FLOAT(8,2)"`
12
-	SentType    int       `xorm:"comment('0案场 1渠道') SMALLINT(6)"`
11
+	Price       string    `xorm:"DECIMAL(8,2)"`
12
+	SendType    string    `xorm:"comment('case 案场 channel渠道') VARCHAR(50)"`
13 13
 	StartDate   time.Time `xorm:"DATETIME"`
14 14
 	EndDate     time.Time `xorm:"DATETIME"`
15 15
 	ValidDays   int       `xorm:"INT(11)"`

+ 59
- 0
service/bodychecklist/bodychecklist.go Visa fil

@@ -0,0 +1,59 @@
1
+package bodychecklist
2
+
3
+import (
4
+	"errors"
5
+	"spaceofcheng/services/models/bodychecklist"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/utils"
8
+	"strings"
9
+)
10
+
11
+// BodychecklistServ 系统处理
12
+type BodychecklistServ struct {
13
+	ctx *utils.Context
14
+	dao *bodychecklist.BodychecklistDAO
15
+}
16
+
17
+// NewBodychecklistServ 初始化
18
+func NewBodychecklistServ(ctx *utils.Context) *BodychecklistServ {
19
+	return &BodychecklistServ{
20
+		ctx: ctx,
21
+		dao: bodychecklist.NewBodychecklistDAO(ctx),
22
+	}
23
+}
24
+
25
+func (s *BodychecklistServ) GetBodyCheckList(caseID, phone, customerName string, pagenavi ...int) ([]bodychecklist.BodyCheck, int64, error) {
26
+	filters := []string{}
27
+	if caseID != "" {
28
+		if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
29
+			return nil, 0, err
30
+		}
31
+
32
+		filters = []string{
33
+			"case_id='" + caseID + "'",
34
+		}
35
+	} else {
36
+		casesRaw := s.ctx.Get("cases")
37
+		if casesRaw == nil {
38
+			return nil, 0, errors.New("请设置过滤案场")
39
+		}
40
+
41
+		cases := casesRaw.([]model.SysUserCase)
42
+		caseIDs := []string{}
43
+		for _, cs := range cases {
44
+			caseIDs = append(caseIDs, cs.CaseId)
45
+		}
46
+
47
+		filters = []string{
48
+			"case_id in ('" + strings.Join(caseIDs, "','") + "')",
49
+		}
50
+	}
51
+
52
+	limit := utils.GetPageNaviLimit(pagenavi...)
53
+	res, total, err := s.dao.GetBodychecklist(phone, customerName, filters, limit)
54
+	if err != nil {
55
+		utils.LogError("查询体检列表失败: " + err.Error())
56
+		return nil, 0, errors.New("查询体检列表失败")
57
+	}
58
+	return res, total, nil
59
+}

+ 64
- 25
service/gymcard/gymcard.go Visa fil

@@ -8,7 +8,10 @@ import (
8 8
 	"spaceofcheng/services/models/model"
9 9
 	"spaceofcheng/services/service"
10 10
 	"spaceofcheng/services/utils"
11
+	"strings"
11 12
 	"time"
13
+
14
+	"github.com/astaxie/beego"
12 15
 )
13 16
 
14 17
 // GymcardServ 系统处理
@@ -28,26 +31,41 @@ func NewGymcardServ(ctx *utils.Context) *GymcardServ {
28 31
 }
29 32
 
30 33
 // GetGymcardList 根据案场id获取健身卡列表
31
-func (s *GymcardServ) GetGymcardList(caseid string, page, pageSize int) (map[string]interface{}, error) {
32
-	if pageSize == 0 {
33
-		pageSize = service.PAGENUM
34
-	}
35
-	gymcard, err := s.dao.GetGymcard(caseid, page, pageSize)
36
-	if err != nil {
37
-		utils.LogError("获取健身卡列表失败:" + err.Error())
38
-		return nil, errors.New("获取健身卡列表失败")
34
+func (s *GymcardServ) GetGymcardList(caseID string, pagenavi ...int) ([]gymcard.Gymcard, int64, error) {
35
+	filters := []string{}
36
+	if caseID != "" {
37
+		if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
38
+			return nil, 0, err
39
+		}
40
+
41
+		filters = []string{
42
+			"case_id='" + caseID + "'",
43
+		}
44
+	} else {
45
+		casesRaw := s.ctx.Get("cases")
46
+		if casesRaw == nil {
47
+			return nil, 0, errors.New("请设置过滤案场")
48
+		}
49
+
50
+		cases := casesRaw.([]model.SysUserCase)
51
+		caseIDs := []string{}
52
+		for _, cs := range cases {
53
+			caseIDs = append(caseIDs, cs.CaseId)
54
+		}
55
+
56
+		filters = []string{
57
+			"case_id in ('" + strings.Join(caseIDs, "','") + "')",
58
+		}
39 59
 	}
40
-	total, err := s.dao.GetGymcardCount(caseid)
60
+
61
+	limit := utils.GetPageNaviLimit(pagenavi...)
62
+	res, total, err := s.dao.GetGymcard(filters, limit)
41 63
 	if err != nil {
42
-		utils.LogError("获取健身卡列表失败:" + err.Error())
43
-		return nil, errors.New("获取健身卡列表失败")
64
+		utils.LogError("查询卡列表失败: " + err.Error())
65
+		return nil, 0, errors.New("查询卡列表失败")
44 66
 	}
45
-	return map[string]interface{}{
46
-		"list":     gymcard,
47
-		"pageSize": pageSize,
48
-		"pagenum":  total,
49
-		"page":     page,
50
-	}, nil
67
+
68
+	return res, total, nil
51 69
 }
52 70
 
53 71
 // GetCustomerGymBycustomerId 根据客户id获取客户所有健身卡列表
@@ -106,25 +124,46 @@ func (s *GymcardServ) GetCustomerGymDetailById(customerGymId string) (*gymcard.C
106 124
 
107 125
 // SaveGymcard 保存游泳健身卡
108 126
 func (s *GymcardServ) SaveGymcard(newGym gymcard.Gymcard) (*gymcard.Gymcard, error) {
109
-	var newGymCard model.TaGymCard
110
-	var cardGym model.TaGymCard
127
+	var cardGym = model.TaGymCard{}
111 128
 	var err error
112 129
 	if newGym.GymCardId == "" {
113
-		newGymCard = newGym.TaGymCard
114
-		cardGym, err = s.dao.AddGymcard(newGymCard)
115
-		err = s.dao.AddGymcardImg(newGymCard.GymCardId, newGym.CardImageUrl)
116
-		err = s.dao.AddGymcardShare(newGymCard.GymCardId, newGym.CardShareInfo, newGym.CardUseRule, newGym.CardUseInstruction)
117
-		if newGym.SentType == 1 {
130
+		cardGym, err = s.dao.AddGymcard(newGym.TaGymCard)
131
+		if err != nil {
132
+			utils.LogError("保存健身卡信息失败" + err.Error())
133
+			return nil, errors.New("保存健身卡信息失败")
134
+		}
135
+		err = s.dao.AddGymcardImg(cardGym.GymCardId, newGym.CardImageUrl)
136
+		if err != nil {
137
+			utils.LogError("保存健身卡信息失败" + err.Error())
138
+			return nil, errors.New("保存健身卡信息失败")
139
+		}
140
+		err = s.dao.AddGymcardShare(cardGym.GymCardId, newGym.CardShareInfo, newGym.CardUseRule, newGym.CardUseInstruction)
141
+		if err != nil {
142
+			utils.LogError("保存健身卡信息失败" + err.Error())
143
+			return nil, errors.New("保存健身卡信息失败")
144
+		}
145
+		if newGym.SendType == "channel" {
118 146
 			err = s.dao.AddCardChannel(cardGym.GymCardId, newGym.ChannelId)
119 147
 		}
120 148
 	} else {
121 149
 		err = s.dao.EditGymcardImg(newGym.GymCardId, newGym.CardImageUrl)
150
+		// if err != nil {
151
+		// 	utils.LogError("保存健身卡信息失败" + err.Error())
152
+		// 	return nil, errors.New("保存健身卡信息失败")
153
+		// }
122 154
 		err = s.dao.EditGymcardShare(newGym.GymCardId, newGym.CardShareInfo, newGym.CardUseRule, newGym.CardUseInstruction)
155
+		// if err != nil {
156
+		// 	utils.LogError("保存健身卡信息失败" + err.Error())
157
+		// 	return nil, errors.New("保存健身卡信息失败")
158
+		// }
123 159
 	}
124 160
 	if err != nil {
125 161
 		utils.LogError("保存健身卡信息失败" + err.Error())
126 162
 		return nil, errors.New("保存健身卡信息失败")
127 163
 	}
164
+	beego.Error("-------------------------------------")
165
+	beego.Error(newGym)
166
+	beego.Error("-------------------------------------")
128 167
 	return &newGym, nil
129 168
 }
130 169
 
@@ -235,7 +274,7 @@ func (s *GymcardServ) deleteGymCard(gymcardId string) error {
235 274
 		utils.LogError("删除健身卡失败" + err.Error())
236 275
 		return errors.New("删除健身卡失败")
237 276
 	}
238
-	if gymCard.SentType == 1 {
277
+	if gymCard.SendType == "channel" {
239 278
 		err = s.dao.DeleteCardChannel(gymcardId)
240 279
 		if err != nil {
241 280
 			utils.LogError("删除健身卡失败" + err.Error())