Pārlūkot izejas kodu

活动详情页

庄逸洲 5 gadus atpakaļ
vecāks
revīzija
b39e67ae47

+ 84 - 0
controllers/marketing_tool/activity_controller.go Parādīt failu

@@ -16,6 +16,8 @@ func ActivityCtlRegistRouters() {
16 16
 	beego.Router("/api/activities", &ActivityAPIController{}, "get:Activities")
17 17
 	beego.Router("/api/activity", &ActivityAPIController{}, "get:GetActivity")
18 18
 	beego.Router("/api/activity/submit", &ActivityAPIController{}, "post:ActivitySubmit")
19
+	beego.Router("/api/activity/detailview", &ActivityAPIController{}, "get:GetActivityDetailView")
20
+	beego.Router("/api/activity/signups", &ActivityAPIController{}, "get:SignupUsers")
19 21
 }
20 22
 
21 23
 type ActivityAPIController struct {
@@ -209,6 +211,12 @@ func (this *ActivityAPIController) ActivitySubmit() {
209 211
 			return
210 212
 		}
211 213
 	}
214
+
215
+	if activity.Status == 1 {
216
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeActivityPublishedCannotModify)
217
+		return
218
+	}
219
+
212 220
 	if len(activityForm.Title) == 0 || len(activityForm.Subtitle) == 0 || len(activityForm.PosterPhoto) == 0 || len(activityForm.Address) == 0 || len(activityForm.SignUpDeadline) == 0 || len(activityForm.StartTime) == 0 {
213 221
 		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
214 222
 		return
@@ -329,3 +337,79 @@ func (this *ActivityAPIController) ActivitySubmit() {
329 337
 		"activity_id": activity.Id,
330 338
 	})
331 339
 }
340
+
341
+// /api/activity/detailview [get]
342
+// @param id:int
343
+func (this *ActivityAPIController) GetActivityDetailView() {
344
+	activityID, _ := this.GetInt64("id")
345
+	if activityID <= 0 {
346
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
347
+		return
348
+	}
349
+
350
+	adminUserInfo := this.GetAdminUserInfo()
351
+	activity, getActivityErr := marketing_tool_service.GetActivityWithID(adminUserInfo.CurrentOrgId, activityID)
352
+	if getActivityErr != nil {
353
+		this.ErrorLog("获取活动失败:%v", getActivityErr)
354
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
355
+		return
356
+	} else if activity == nil {
357
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeActivityNotExist)
358
+		return
359
+	}
360
+	if activity.Status != 1 && activity.Status != 4 {
361
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeActivityNotExist)
362
+		return
363
+	}
364
+
365
+	signupUsers, _, getUsersErr := marketing_tool_service.GetValidActivitySignupUsers(activityID, "", 1)
366
+	if getUsersErr != nil {
367
+		this.ErrorLog("获取活动报名客户失败:%v", getUsersErr)
368
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
369
+		return
370
+	}
371
+
372
+	this.ServeSuccessJSON(map[string]interface{}{
373
+		"activity": activity,
374
+		"users":    signupUsers,
375
+	})
376
+}
377
+
378
+// /api/activity/signups [get]
379
+// @param id:int
380
+// @param keyword?:string
381
+// @param page?:int
382
+func (this *ActivityAPIController) SignupUsers() {
383
+	activityID, _ := this.GetInt64("id")
384
+	if activityID <= 0 {
385
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
386
+		return
387
+	}
388
+	page, _ := this.GetInt("page")
389
+	if page <= 0 {
390
+		page = 1
391
+	}
392
+	keyword := this.GetString("keyword")
393
+
394
+	adminUserInfo := this.GetAdminUserInfo()
395
+	activity, getActivityErr := marketing_tool_service.GetActivityWithID(adminUserInfo.CurrentOrgId, activityID)
396
+	if getActivityErr != nil {
397
+		this.ErrorLog("获取活动失败:%v", getActivityErr)
398
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
399
+		return
400
+	} else if activity == nil {
401
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeActivityNotExist)
402
+		return
403
+	}
404
+
405
+	signupUsers, total, getUsersErr := marketing_tool_service.GetValidActivitySignupUsers(activityID, keyword, page)
406
+	if getUsersErr != nil {
407
+		this.ErrorLog("获取活动报名客户失败:%v", getUsersErr)
408
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
409
+		return
410
+	}
411
+	this.ServeSuccessJSON(map[string]interface{}{
412
+		"users": signupUsers,
413
+		"total": total,
414
+	})
415
+}

+ 4 - 2
enums/error_code.go Parādīt failu

@@ -44,7 +44,8 @@ const ( // ErrorCode
44 44
 	ErrorCodeCannotRemoveRole       = 9006
45 45
 	ErrorCodeRoleMobileIsSuperAdmin = 9007
46 46
 
47
-	ErrorCodeActivityNotExist = 9100
47
+	ErrorCodeActivityNotExist              = 9100
48
+	ErrorCodeActivityPublishedCannotModify = 9101
48 49
 
49 50
 	ErrorCodeGetQiniuUpToken = 1001
50 51
 
@@ -99,7 +100,8 @@ var ErrCodeMsgs = map[int]string{
99 100
 	ErrorCodeCannotRemoveRole:       "存在该角色的管理员,不能删除该角色",
100 101
 	ErrorCodeRoleMobileIsSuperAdmin: "该手机号已注册为超级管理员",
101 102
 
102
-	ErrorCodeActivityNotExist: "活动不存在",
103
+	ErrorCodeActivityNotExist:              "活动不存在",
104
+	ErrorCodeActivityPublishedCannotModify: "已发布的活动不可更改",
103 105
 
104 106
 	ErrorCodeGetQiniuUpToken: "获取七牛uptoken失败",
105 107
 

+ 11 - 11
models/activity_models.go Parādīt failu

@@ -51,17 +51,17 @@ func (ActivityParagraph) TableName() string {
51 51
 }
52 52
 
53 53
 type ActivityUser struct {
54
-	Id          int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT"` // 记录 ID
55
-	ActivityId  int    `gorm:"column:activity_id"`         // 活动 ID
56
-	UserId      int    `gorm:"column:user_id"`             // 参与者 ID
57
-	IDCardNo    string `gorm:"column:idcard_no"`           // 身份证号
58
-	Mobile      string
59
-	Realname    string
60
-	Avatar      string
61
-	AvatarThumb string
62
-	Status      int8  // 状态 0.无效 1.有效
63
-	CreateTime  int64 `gorm:"column:ctime"` // 报名时间
64
-	ModifyTime  int64 `gorm:"column:mtime"` // 修改时间
54
+	Id          int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT" json:"id"` // 记录 ID
55
+	ActivityId  int    `gorm:"column:activity_id" json:"-"`          // 活动 ID
56
+	UserId      int    `gorm:"column:user_id" json:"-"`              // 参与者 ID
57
+	IDCardNo    string `gorm:"column:idcard_no" json:"idcard_no"`    // 身份证号
58
+	Mobile      string `json:"mobile"`
59
+	Realname    string `json:"real_name"`
60
+	Avatar      string `json:"avatar"`
61
+	AvatarThumb string `json:"avatar_thumb"`
62
+	Status      int8   `json:"-"`                         // 状态 0.无效 1.有效
63
+	CreateTime  int64  `gorm:"column:ctime" json:"ctime"` // 报名时间
64
+	ModifyTime  int64  `gorm:"column:mtime" json:"-"`     // 修改时间
65 65
 }
66 66
 
67 67
 func (ActivityUser) TableName() string {

+ 22 - 0
service/marketing_tool_service/activity_service.go Parādīt failu

@@ -164,3 +164,25 @@ func SaveActivityAndParagraph(activity *models.Activity, paragraph *models.Activ
164 164
 func SaveActivityWxShare(model *models.ActivityWxShare) error {
165 165
 	return service.PatientWriteDB().Save(model).Error
166 166
 }
167
+
168
+func GetValidActivitySignupUsers(activityID int64, keyWord string, page int) ([]*models.ActivityUser, int, error) {
169
+	var users []*models.ActivityUser
170
+	countPerPage := 10
171
+	var totalCount int
172
+	db := service.PatientReadDB().Model(&models.ActivityUser{}).Where("activity_id = ? AND status = 1", activityID)
173
+	if len(keyWord) > 0 {
174
+		likeParam := "%" + keyWord + "%"
175
+		db = db.Where("mobile LIKE ? OR realname LIKE ?", likeParam, likeParam)
176
+	}
177
+	err := db.
178
+		Count(&totalCount).
179
+		Order("id asc").Limit(countPerPage).Offset((page - 1) * countPerPage).
180
+		Find(&users).
181
+		Error
182
+
183
+	if err == nil {
184
+		return users, totalCount, nil
185
+	} else {
186
+		return nil, 0, err
187
+	}
188
+}