wangfei 6 jaren geleden
bovenliggende
commit
5f5ca0d73a
10 gewijzigde bestanden met toevoegingen van 158 en 4715 verwijderingen
  1. 11
    0
      controllers/coupon/coupon.go
  2. 16
    5
      controllers/user/user.go
  3. 0
    4701
      log/common.log
  4. 46
    6
      models/card/card.go
  5. 7
    0
      models/coupon/coupon.go
  6. 17
    0
      models/system/user.go
  7. 1
    0
      routers/common.go
  8. 3
    0
      routers/wechat.go
  9. 18
    0
      service/coupon/coupon.go
  10. 39
    3
      service/user.go

+ 11
- 0
controllers/coupon/coupon.go Bestand weergeven

@@ -167,3 +167,14 @@ func (c *CouponController) GiveCoupon() {
167 167
 
168 168
 	c.ResponseJSON("ok")
169 169
 }
170
+
171
+// GetCouponBySendType 根据类型获取优惠券
172
+func (c *CouponController) GetCouponBySendType() {
173
+	sendtype := c.GetString(":type")
174
+	coupons, err := c.serv.GetCouponBySendType(sendtype)
175
+	if err != nil {
176
+		c.ResponseError(err)
177
+	}
178
+
179
+	c.ResponseJSON(coupons)
180
+}

+ 16
- 5
controllers/user/user.go Bestand weergeven

@@ -251,11 +251,11 @@ func (c *UserController) GetUserByTel() {
251 251
 
252 252
 // GetForbidUsers 获取所有禁止人员信息
253 253
 func (c *UserController) GetForbidUsers() {
254
-	caseid := c.GetString("caseid")
255
-	if caseid == "" {
256
-		c.ResponseError(errors.New("没有案场信息"))
257
-	}
258
-	users, err := c.dao.GetForbidUsers(caseid)
254
+	// caseid := c.GetString("caseid")
255
+	// if caseid == "" {
256
+	// 	c.ResponseError(errors.New("没有案场信息"))
257
+	// }
258
+	users, err := c.dao.GetForbidUsers()
259 259
 	if err != nil {
260 260
 		utils.LogError("获取禁止人员信息失败: " + err.Error())
261 261
 		c.ResponseError(errors.New("获取禁止人员信息失败"))
@@ -286,3 +286,14 @@ func (c *UserController) OpenForbidUser() {
286 286
 	}
287 287
 	c.ResponseJSON("操作成功")
288 288
 }
289
+
290
+// GetCaseUserByType 根据用户类型获取用户信息
291
+func (c *UserController) GetCaseUserByType() {
292
+	usertype := c.GetString(":type")
293
+	users, err := c.dao.GetCaseUserByType(usertype)
294
+	if err != nil {
295
+		utils.LogError("获取人员信息失败: " + err.Error())
296
+		c.ResponseError(errors.New("获取人员信息失败"))
297
+	}
298
+	c.ResponseJSON(users)
299
+}

+ 0
- 4701
log/common.log
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 46
- 6
models/card/card.go Bestand weergeven

@@ -215,15 +215,55 @@ func (m *CardDAO) CheckCustCard(custID, CardID string, startDate, endDate time.T
215 215
 // 案场可用卡信息
216 216
 type CaseUsableCard struct {
217 217
 	model.TaCouponCard `xorm:"extends"`
218
-	UserSendCount      int
219
-	UserUsedCount      int
218
+	CustomerCard       []model.TaCustomerCard
220 219
 }
221 220
 
222 221
 // GetCaseUsableCard 获取案场可用卡信息
223
-func (m *CardDAO) GetCaseUsableCard(caseid string) ([]CaseUsableCard, error) {
222
+func (m *CardDAO) GetCaseUsableCard(caseid, userid string, page, pageSize int) ([]CaseUsableCard, error) {
224 223
 	var cards []CaseUsableCard
225
-	sql := `select * from ta_coupon_card where case_id=? and status=? and end_date>now() order by create_date limit `
226
-	err := m.db.Sql(sql).Find(&cards)
227
-	// err := m.db.Where("case_id=?", caseid).And("status=?", models.STATUS_NORMAL).And("end_date>now()").Desc("create_date").Find(&cards)
224
+	sql := `select * from ta_coupon_card where case_id=? and status=? and end_date>now() order by create_date limit ` + strconv.Itoa((page-1)*pageSize) + `, ` + strconv.Itoa(pageSize)
225
+	err := m.db.Sql(sql, caseid, models.STATUS_NORMAL).Find(&cards)
226
+	if userid != "" {
227
+		for inx, card := range cards {
228
+			cCards, err := m.GetCustomerCardByCardAndUser(card.CardId, userid)
229
+			if err != nil {
230
+				return nil, err
231
+			}
232
+			cards[inx].CustomerCard = cCards
233
+		}
234
+	}
228 235
 	return cards, err
229 236
 }
237
+
238
+// GetCustomerCardByCardAndUser 根据卡与用户获取领取的用户信息
239
+func (m *CardDAO) GetCustomerCardByCardAndUser(cardid, userid string) ([]model.TaCustomerCard, error) {
240
+	var customerCards []model.TaCustomerCard
241
+	err := m.db.Where("card_id=?", cardid).And("sales_id=?", userid).And("status>?", models.STATUS_DEL).Find(&customerCards)
242
+	return customerCards, err
243
+}
244
+
245
+// GetCardDetail 获取卡详情
246
+func (m *CardDAO) GetCardDetail(cardid string) (*CaseUsableCard, error) {
247
+	var card = new(CaseUsableCard)
248
+	sql := `select * from ta_coupon_card where card_id=? and status>?`
249
+	_, err := m.db.Sql(sql, cardid, models.STATUS_DEL).Get(&card)
250
+	if err != nil {
251
+		return nil, err
252
+	}
253
+	if card == nil || card.CardId == "" {
254
+		return nil, errors.New("无卡信息")
255
+	}
256
+	ccards, err := m.GetCustomerCardByCard(cardid)
257
+	if err != nil {
258
+		return nil, err
259
+	}
260
+	card.CustomerCard = ccards
261
+	return card, nil
262
+}
263
+
264
+// GetCustomerCardByCard 根据卡获取领取的用户信息
265
+func (m *CardDAO) GetCustomerCardByCard(cardid string) ([]model.TaCustomerCard, error) {
266
+	var customerCards []model.TaCustomerCard
267
+	err := m.db.Where("card_id=?", cardid).And("status>?", models.STATUS_DEL).Find(&customerCards)
268
+	return customerCards, err
269
+}

+ 7
- 0
models/coupon/coupon.go Bestand weergeven

@@ -251,3 +251,10 @@ func (m *CouponDAO) SaveCouponRecoreds(recs []model.TaCouponGiveRecord) error {
251 251
 
252 252
 	return nil
253 253
 }
254
+
255
+// GetCouponBySendType 根据类型获取优惠券
256
+func (m *CouponDAO) GetCouponBySendType(caseids, sendtype string) ([]model.TaCoupon, error) {
257
+	var coupons []model.TaCoupon
258
+	err := m.db.Where("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").And("send_type=?", sendtype).And("status=?", models.STATUS_NORMAL).Find(&coupons)
259
+	return coupons, err
260
+}

+ 17
- 0
models/system/user.go Bestand weergeven

@@ -496,3 +496,20 @@ func (m *UserDAO) OpenForbidUser(forbid *model.TaForbidUser) error {
496 496
 	_, err := m.db.Cols(col...).Where("forbid_id=?", forbid.ForbidId).Update(forbid)
497 497
 	return err
498 498
 }
499
+
500
+// UserWithCouponAndCard 用户关联卡券信息
501
+type UserWithCouponAndCard struct {
502
+	model.SysUser  `xorm:"extends"`
503
+	CustomerCoupon []model.TaCustomerCoupon
504
+	CustomerCard   []model.TaCustomerCard
505
+}
506
+
507
+// GetCaseUserByType 获取案场所有销售信息
508
+func (m *UserDAO) GetCaseUserByType(caseid, usertype string) ([]UserWithCouponAndCard, error) {
509
+	var users []UserWithCouponAndCard
510
+	sql := `select a.* from sys_user a inner join sys_user_type b on a.user_id=b.user_id
511
+	inner join sys_user_case c on a.user_id=c.user_id
512
+	where a.status>? and c.case_id =? and b.type_id=?`
513
+	err := m.db.Sql(sql, models.STATUS_DEL, caseid, usertype).Find(&users)
514
+	return users, err
515
+}

+ 1
- 0
routers/common.go Bestand weergeven

@@ -230,6 +230,7 @@ func getCommonRoutes() beego.LinkNamespace {
230 230
 		beego.NSRouter("/coupon/:id", &coupon.CouponController{}, "get:GetCouponByIDForAdmin"),
231 231
 		beego.NSRouter("/coupon/:id", &coupon.CouponController{}, "put:UpdateCoupon"),
232 232
 		beego.NSRouter("/coupon/:id/to/:users", &coupon.CouponController{}, "post:GiveCoupon"),
233
+		beego.NSRouter("/coupon/type/:type", &coupon.CouponController{}, "get:GetCouponBySendType"),
233 234
 
234 235
 		// 卡
235 236
 		beego.NSRouter("/card", &card.CardController{}, "get:ListByCase"),

+ 3
- 0
routers/wechat.go Bestand weergeven

@@ -41,5 +41,8 @@ func getWechatRoutes() beego.LinkNamespace {
41 41
 		beego.NSRouter("/user/forbid", &user.UserController{}, "get:GetForbidUsers"),
42 42
 		beego.NSRouter("/user/forbid/:userid/:type", &user.UserController{}, "post:SaveForbidUser"),
43 43
 		beego.NSRouter("/user/forbid/:userid/:type", &user.UserController{}, "put:OpenForbidUser"),
44
+
45
+		// 用户
46
+		beego.NSRouter("/user/:type", &user.UserController{}, "get:GetCaseUserByType"),
44 47
 	)
45 48
 }

+ 18
- 0
service/coupon/coupon.go Bestand weergeven

@@ -350,3 +350,21 @@ func (s *CouponServ) GetCouponByIDWithCheck(cpID string) (*coupon.CouponInfo, er
350 350
 
351 351
 	return cp, nil
352 352
 }
353
+
354
+// GetCouponBySendType 根据发送类型获取优惠券
355
+func (s *CouponServ) GetCouponBySendType(sendtype string) ([]model.TaCoupon, error) {
356
+	cases := s.ctx.Get("cases").([]model.SysUserCase)
357
+	caseIDs := ""
358
+	for _, value := range cases {
359
+		if caseIDs != "" {
360
+			caseIDs = caseIDs + ","
361
+		}
362
+		caseIDs = caseIDs + value.CaseId
363
+	}
364
+	coupon, err := s.dao.GetCouponBySendType(caseIDs, sendtype)
365
+	if err != nil {
366
+		utils.LogError("获取优惠券失败: " + err.Error())
367
+		return nil, errors.New("校验优惠券失败")
368
+	}
369
+	return coupon, nil
370
+}

+ 39
- 3
service/user.go Bestand weergeven

@@ -3,6 +3,7 @@ package service
3 3
 import (
4 4
 	"errors"
5 5
 	"spaceofcheng/services/models"
6
+	"spaceofcheng/services/models/card"
6 7
 	"spaceofcheng/services/models/cases"
7 8
 	"spaceofcheng/services/models/customer"
8 9
 	"spaceofcheng/services/models/model"
@@ -19,6 +20,7 @@ type UserServ struct {
19 20
 	dao         *system.UserDAO
20 21
 	casedao     *cases.CaseDAO
21 22
 	customerdao *customer.CustomerDAO
23
+	carddao     *card.CardDAO
22 24
 }
23 25
 
24 26
 // NewUserServ 初始化
@@ -28,6 +30,7 @@ func NewUserServ(ctx *utils.Context) *UserServ {
28 30
 		dao:         system.NewUserDAO(ctx),
29 31
 		casedao:     cases.NewCaseDAO(ctx),
30 32
 		customerdao: customer.NewCustomerDAO(ctx),
33
+		carddao:     card.NewCardDAO(ctx),
31 34
 	}
32 35
 }
33 36
 
@@ -411,11 +414,19 @@ func (s *UserServ) GetUserByTel(tel string) (*model.SysUser, error) {
411 414
 }
412 415
 
413 416
 // GetForbidUsers 获取所有禁止人员信息
414
-func (s *UserServ) GetForbidUsers(caseid string) ([]model.TaForbidUser, error) {
415
-	if err := utils.NewAuthEngine(s.ctx).CheckCase(caseid); err != nil {
417
+func (s *UserServ) GetForbidUsers() ([]model.TaForbidUser, error) {
418
+	customer := s.ctx.Get("customer").(model.TaCustomer)
419
+	if customer.CustomerId == "" || customer.UserId == "" {
420
+		return nil, errors.New("当前用户没有权限查看用户信息")
421
+	}
422
+	caseinfo, err := s.dao.GetUserBelongCase(customer.UserId)
423
+	if err != nil {
416 424
 		return nil, err
417 425
 	}
418
-	users, err := s.dao.GetForbidUsers(caseid)
426
+	// if err := utils.NewAuthEngine(s.ctx).CheckCase(caseid); err != nil {
427
+	// 	return nil, err
428
+	// }
429
+	users, err := s.dao.GetForbidUsers(caseinfo.CaseId)
419 430
 	return users, err
420 431
 }
421 432
 
@@ -508,3 +519,28 @@ func (s *UserServ) OpenForbidUser(userid string, forbidtype string) error {
508 519
 	err = s.dao.OpenForbidUser(&forbiduser)
509 520
 	return err
510 521
 }
522
+
523
+// GetCaseUserByType 根据用户类型获取人员信息
524
+func (s *UserServ) GetCaseUserByType(usertype string) ([]system.UserWithCouponAndCard, error) {
525
+	customer := s.ctx.Get("customer").(model.TaCustomer)
526
+	if customer.CustomerId == "" || customer.UserId == "" {
527
+		return nil, errors.New("当前用户没有权限查看用户信息")
528
+	}
529
+	caseinfo, err := s.dao.GetUserBelongCase(customer.UserId)
530
+	if err != nil {
531
+		return nil, err
532
+	}
533
+
534
+	users, err := s.dao.GetCaseUserByType(caseinfo.CaseId, usertype)
535
+	if err != nil {
536
+		return nil, err
537
+	}
538
+	for inx, user := range users {
539
+		cards, err := s.carddao.GetCustomerCardByCardAndUser(caseinfo.CaseId, user.UserId)
540
+		if err != nil {
541
+			return nil, err
542
+		}
543
+		users[inx].CustomerCard = cards
544
+	}
545
+	return users, err
546
+}