wangfei 6 years ago
parent
commit
9644572de7

+ 17
- 8
controllers/vipcard/vipcard.go View File

6
 	"spaceofcheng/services/models"
6
 	"spaceofcheng/services/models"
7
 	"spaceofcheng/services/models/model"
7
 	"spaceofcheng/services/models/model"
8
 	"spaceofcheng/services/service/vipcard"
8
 	"spaceofcheng/services/service/vipcard"
9
-	"time"
10
 	"spaceofcheng/services/utils"
9
 	"spaceofcheng/services/utils"
10
+	"time"
11
 )
11
 )
12
 
12
 
13
 // CaseController 信息
13
 // CaseController 信息
91
 	if err != nil {
91
 	if err != nil {
92
 		c.ResponseError(err)
92
 		c.ResponseError(err)
93
 	}
93
 	}
94
-	err = c.dao.CustomerCharge(vipChild, createUser)
94
+	// 插入客户VIP卡
95
+	err = c.dao.SaveCustomerVip(vipChild, createUser)
95
 	if err != nil {
96
 	if err != nil {
96
 		c.ResponseError(err)
97
 		c.ResponseError(err)
97
 	}
98
 	}
99
+	// err = c.dao.CustomerCharge(vipChild, createUser)
100
+	// if err != nil {
101
+	// 	c.ResponseError(err)
102
+	// }
98
 	c.ResponseJSON("激活成功")
103
 	c.ResponseJSON("激活成功")
99
 
104
 
100
 }
105
 }
109
 	c.ResponseJSON(vipChild)
114
 	c.ResponseJSON(vipChild)
110
 }
115
 }
111
 
116
 
112
-
113
 // GetVipListExcel 导出VIP 列表
117
 // GetVipListExcel 导出VIP 列表
114
-func (c *VipcardController) GetVipListExcel(){
118
+func (c *VipcardController) GetVipListExcel() {
115
 
119
 
116
 	caseids := c.GetString("caseid")
120
 	caseids := c.GetString("caseid")
117
 	if caseids == "" {
121
 	if caseids == "" {
154
 		statusToString := ""
158
 		statusToString := ""
155
 		if item.Status == 1 {
159
 		if item.Status == 1 {
156
 			statusToString = "已激活"
160
 			statusToString = "已激活"
157
-		}else{
161
+		} else {
158
 			statusToString = "未激活"
162
 			statusToString = "未激活"
159
 		}
163
 		}
160
 
164
 
173
 
177
 
174
 }
178
 }
175
 
179
 
176
-
177
-
178
-
180
+// GetCustomerVips 获取客户vip卡
181
+func (c *VipcardController) GetCustomerVips() {
182
+	vips, err := c.dao.GetCustomerVips()
183
+	if err != nil {
184
+		c.ResponseError(err)
185
+	}
186
+	c.ResponseJSON(vips)
187
+}

+ 2
- 0
models/model/ta_vip_card_child.go View File

18
 	SalesName        string    `xorm:"VARCHAR(50)"`
18
 	SalesName        string    `xorm:"VARCHAR(50)"`
19
 	BeginDate        time.Time `xorm:"DATETIME"`
19
 	BeginDate        time.Time `xorm:"DATETIME"`
20
 	EndDate          time.Time `xorm:"DATETIME"`
20
 	EndDate          time.Time `xorm:"DATETIME"`
21
+	CaseId           string    `xorm:"VARCHAR(64)"`
22
+	OrgId            string    `xorm:"VARCHAR(64)"`
21
 }
23
 }

+ 40
- 0
models/vipcard/vipcard.go View File

199
 	err := m.db.Sql(sql).Find(&vipcards)
199
 	err := m.db.Sql(sql).Find(&vipcards)
200
 	return vipcards, err
200
 	return vipcards, err
201
 }
201
 }
202
+
203
+// AddCustomerVip 保存客户Vip卡信息
204
+func (m *VipcardDAO) AddCustomerVip(customerVip model.TaCustomerVip) (*model.TaCustomerVip, error) {
205
+	customerVip.CreateDate = time.Now()
206
+	customerVip.CustomerVipId = utils.GetGUID()
207
+	customerVip.Status = models.STATUS_NORMAL
208
+	_, err := m.db.Insert(customerVip)
209
+	return &customerVip, err
210
+}
211
+
212
+// InsertCustomerVipChange 保存客户Vip卡变动
213
+func (m *VipcardDAO) InsertCustomerVipChange(change model.TaCustomerVipChange) error {
214
+	change.ChangeId = utils.GetGUID()
215
+	change.Status = models.STATUS_NORMAL
216
+	change.CreateDate = time.Now()
217
+	_, err := m.db.Insert(change)
218
+	return err
219
+}
220
+
221
+// CustomerVipWithChange 用户vip卡关联变更
222
+type CustomerVipWithChange struct {
223
+	model.TaCustomerVip `xorm:"extends"`
224
+	Changes             []model.TaCustomerVipChange
225
+}
226
+
227
+// GetCustomerVips 获取客户vip卡信息
228
+func (m *VipcardDAO) GetCustomerVips(customerid string) ([]CustomerVipWithChange, error) {
229
+	var vips []CustomerVipWithChange
230
+	sql := `select * from ta_customer_vip where customer_id=? and status>?`
231
+	err := m.db.Sql(sql, customerid, models.STATUS_DEL).Find(&vips)
232
+	if err != nil {
233
+		return nil, err
234
+	}
235
+	for inx, vip := range vips {
236
+		var changes []model.TaCustomerVipChange
237
+		m.db.Where("customer_vip_id=?", vip.CustomerVipId).And("status>?", models.STATUS_DEL).Find(&changes)
238
+		vips[inx].Changes = changes
239
+	}
240
+	return vips, nil
241
+}

+ 4
- 0
routers/wechat.go View File

11
 	"spaceofcheng/services/controllers/gymcard"
11
 	"spaceofcheng/services/controllers/gymcard"
12
 	"spaceofcheng/services/controllers/luckdraw"
12
 	"spaceofcheng/services/controllers/luckdraw"
13
 	"spaceofcheng/services/controllers/user"
13
 	"spaceofcheng/services/controllers/user"
14
+	"spaceofcheng/services/controllers/vipcard"
14
 
15
 
15
 	"github.com/astaxie/beego"
16
 	"github.com/astaxie/beego"
16
 )
17
 )
72
 		beego.NSRouter("/card/:id", &card.CardController{}, "post:ReceiveCard"),
73
 		beego.NSRouter("/card/:id", &card.CardController{}, "post:ReceiveCard"),
73
 		beego.NSRouter("/channel/card/:id", &card.CardController{}, "post:ChannelReceiveCard"),
74
 		beego.NSRouter("/channel/card/:id", &card.CardController{}, "post:ChannelReceiveCard"),
74
 
75
 
76
+		// vip卡
77
+		beego.NSRouter("/vip", &vipcard.VipcardController{}, "get:GetCustomerVips"),
78
+
75
 		// 体检
79
 		// 体检
76
 		beego.NSRouter("/GetCheckByUser", &bodycheck.BodyCheckController{}, "get:GetCheckByUser"),
80
 		beego.NSRouter("/GetCheckByUser", &bodycheck.BodyCheckController{}, "get:GetCheckByUser"),
77
 
81
 

+ 65
- 3
service/vipcard/vipcard.go View File

85
 		vipChild.VipCardId = vipcard.VipCardId
85
 		vipChild.VipCardId = vipcard.VipCardId
86
 		vipChild.VipCardChildCode = s.dao.GenerateChildCode()
86
 		vipChild.VipCardChildCode = s.dao.GenerateChildCode()
87
 		vipChild.Amount = vipCard.CardAmount
87
 		vipChild.Amount = vipCard.CardAmount
88
+		vipChild.BeginDate = vipCard.BeginDate
89
+		vipChild.EndDate = vipCard.EndDate
90
+		vipChild.CaseId = vipCard.CaseId
91
+		vipChild.OrgId = vipCard.OrgId
88
 		_, err := s.dao.AddVipChildCard(vipChild)
92
 		_, err := s.dao.AddVipChildCard(vipChild)
89
 		if err != nil {
93
 		if err != nil {
90
 			utils.LogError("创建VIP卡失败: " + err.Error())
94
 			utils.LogError("创建VIP卡失败: " + err.Error())
103
 	return customer, err
107
 	return customer, err
104
 }
108
 }
105
 
109
 
110
+// SaveCustomerVip 保存用户vip
111
+func (s *VipcardServ) SaveCustomerVip(vipchild *model.TaVipCardChild, createUser model.SysUser) error {
112
+	customer, err := s.cdao.GetCustomerByPhone(vipchild.CustomerTel)
113
+	if err != nil {
114
+		utils.LogError("激活失败: " + err.Error())
115
+		return errors.New("激活失败")
116
+	}
117
+	var customerVip = model.TaCustomerVip{
118
+		CustomerId:     customer.CustomerId,
119
+		VipCardId:      vipchild.VipCardId,
120
+		VipCardChildId: vipchild.VipCardChildId,
121
+		CustomerTel:    customer.Phone,
122
+		Amount:         vipchild.Amount,
123
+		BeginDate:      vipchild.BeginDate,
124
+		EndDate:        vipchild.EndDate,
125
+		Balance:        vipchild.Amount,
126
+		CaseId:         vipchild.CaseId,
127
+		OrgId:          vipchild.OrgId,
128
+		SalesId:        vipchild.SalesId,
129
+		SalesName:      vipchild.SalesName,
130
+	}
131
+	info, err := s.dao.AddCustomerVip(customerVip)
132
+	if err != nil {
133
+		utils.LogError("保存用户vip卡失败: " + err.Error())
134
+		return errors.New("激活失败")
135
+	}
136
+	// vip卡明细操作
137
+	var change = model.TaCustomerVipChange{
138
+		CustomerVipId: info.CustomerVipId,
139
+		CustomerId:    info.CustomerId,
140
+		OrgId:         info.OrgId,
141
+		CaseId:        info.CaseId,
142
+		ChangeType:    models.CONSUME_COINCHG,
143
+		ChangeSource:  models.ACCSOURCE_RECHARGE,
144
+		SourceId:      vipchild.VipCardChildId,
145
+		SourceName:    vipchild.VipCardChildCode,
146
+		Amount:        info.Amount,
147
+		FloatType:     models.ACCOUNT_INCOME,
148
+		CreateUser:    createUser.UserId,
149
+	}
150
+	err = s.dao.InsertCustomerVipChange(change)
151
+	if err != nil {
152
+		utils.LogError("保存用户vip卡明细信息失败: " + err.Error())
153
+		return errors.New("激活失败")
154
+	}
155
+
156
+	return err
157
+}
158
+
106
 // CustomerCharge 给用户充值
159
 // CustomerCharge 给用户充值
107
 func (s *VipcardServ) CustomerCharge(vipchild *model.TaVipCardChild, createUser model.SysUser) error {
160
 func (s *VipcardServ) CustomerCharge(vipchild *model.TaVipCardChild, createUser model.SysUser) error {
108
 	customer, err := s.cdao.GetCustomerByPhone(vipchild.CustomerTel)
161
 	customer, err := s.cdao.GetCustomerByPhone(vipchild.CustomerTel)
141
 	return nil
194
 	return nil
142
 }
195
 }
143
 
196
 
144
-
145
 // GetVipChildExcel 获取VIP卡列表
197
 // GetVipChildExcel 获取VIP卡列表
146
 func (s *VipcardServ) GetVipChildExcel(caseids, cardNo, sellerName, userName string) ([]vipcard.VipChild, error) {
198
 func (s *VipcardServ) GetVipChildExcel(caseids, cardNo, sellerName, userName string) ([]vipcard.VipChild, error) {
147
-	
199
+
148
 	vipchild, err := s.dao.GetVipCardListExcel(caseids, cardNo, sellerName, userName)
200
 	vipchild, err := s.dao.GetVipCardListExcel(caseids, cardNo, sellerName, userName)
149
 	if err != nil {
201
 	if err != nil {
150
 		utils.LogError("获取VIP卡信息失败: " + err.Error())
202
 		utils.LogError("获取VIP卡信息失败: " + err.Error())
151
 		return nil, errors.New("获取VIP卡信息失败")
203
 		return nil, errors.New("获取VIP卡信息失败")
152
 	}
204
 	}
153
-	
205
+
154
 	return vipchild, err
206
 	return vipchild, err
155
 }
207
 }
156
 
208
 
209
+// GetCustomerVips 获取用户vip卡信息
210
+func (s *VipcardServ) GetCustomerVips() ([]vipcard.CustomerVipWithChange, error) {
211
+	customer := s.ctx.Get("customer").(model.TaCustomer)
212
+	vips, err := s.dao.GetCustomerVips(customer.CustomerId)
213
+	if err != nil {
214
+		utils.LogError("获取VIP卡信息失败: " + err.Error())
215
+		return nil, errors.New("获取VIP卡信息失败")
216
+	}
157
 
217
 
218
+	return vips, err
219
+}