Parcourir la source

Merge branch 'master' of http://git.shengws.com/zhangbj/scrm-go

zhengchengwu il y a 5 ans
Parent
révision
c60b24adcf

+ 224 - 30
controllers/article/article_controller.go Voir le fichier

@@ -15,12 +15,15 @@ import (
15 15
 
16 16
 func ArticleRouters() {
17 17
 
18
-	beego.Router("/api/acticle/createacticle",&ArticleManage{},"Get:CreateArticle")
18
+	beego.Router("/api/acticle/createacticle",&ArticleManage{},"Post:CreateArticle")
19 19
 	beego.Router("/api/acticle/getArticleType",&ArticleManage{},"Get:GetArticleType")
20 20
 	beego.Router("/api/acticle/getAllArticles",&ArticleManage{},"Get:GetAllArticles")
21 21
 	beego.Router("/api/article/addCategory",&ArticleManage{},"Post:AddCategory")
22 22
 	beego.Router("/api/acticle/getCategorys",&ArticleManage{},"Get:GetCategorys")
23
-	beego.Router("/api/acticle/edit",&ArticleManage{},"Put:EditCategorys")
23
+	beego.Router("/api/acticle/edit",&ArticleManage{},"Post:EditCategorys")
24
+	beego.Router("/api/acticle/delete",&ArticleManage{},"Delete:DeleteCategorys")
25
+	beego.Router("/api/acticle/addvido",&ArticleManage{},"Post:Addvido")
26
+	beego.Router("/api/acticle/savedraft",&ArticleManage{},"Post:SaveDraft")
24 27
 }
25 28
 
26 29
 type ArticleManage struct {
@@ -31,10 +34,40 @@ type ArticleManage struct {
31 34
 func (this *ArticleManage) CreateArticle(){
32 35
 	adminUserInfo := this.GetAdminUserInfo()
33 36
 	userOrgID := int64(adminUserInfo.CurrentOrgId)
34
-	actname := this.GetString("act_name")
35
-	actcontent := this.GetString("act_content")
36
-	orglogo := this.GetString("org_logo")
37
-	acttype, _ := this.GetInt64("act_type")
37
+	dataBody := make(map[string]interface{}, 0)
38
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
39
+	fmt.Println("视频发布是什么呢",err)
40
+
41
+	if err != nil {
42
+		utils.ErrorLog(err.Error())
43
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
44
+		return
45
+	}
46
+
47
+	actname := dataBody["act_name"].(string)
48
+	if len(actname) == 0 {
49
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "文章标题不能为空")
50
+		return
51
+	}
52
+
53
+	actcontent := dataBody["act_content"].(string)
54
+	if len(actcontent) == 0 {
55
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "文章内容不能为空")
56
+		return
57
+	}
58
+
59
+	orglogo := dataBody["org_logo"].(string)
60
+	if len(orglogo) == 0 {
61
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "封面图片不能为空")
62
+		return
63
+	}
64
+
65
+	acttype := int64(dataBody["act_type"].(float64))
66
+	if  acttype <= 0 {
67
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "分类号不能为空")
68
+		return
69
+	}
70
+
38 71
 	timenow := time.Now().Unix()
39 72
 	fmt.Println("姓名:",actname,"文章内容",actcontent,"图片",orglogo,"文章类型",acttype,userOrgID)
40 73
 	articles := models.Articles{
@@ -45,12 +78,17 @@ func (this *ArticleManage) CreateArticle(){
45 78
 				UserOrgId:userOrgID,
46 79
 				Ctime:timenow,
47 80
 				Status:1,
81
+				Type:1,
82
+				ArticleStatus:1,
48 83
 		}
49
-		err := article_service.AddAritcle(articles)
84
+		err = article_service.AddAritcle(articles)
50 85
 		if err !=nil{
51 86
 			this.ServeFailJsonSend(enums.ErrorCodeDataException, "插入文章失败")
52 87
 			return
53 88
 		}
89
+		this.ServeSuccessJSON(map[string]interface{}{
90
+		"articles":articles,
91
+		})
54 92
 }
55 93
 
56 94
 func (this *ArticleManage) GetArticleType(){
@@ -124,14 +162,14 @@ func (this *ArticleManage) AddCategory(){
124 162
 		return
125 163
 	}
126 164
 
127
-	content := dataBody["content"].(string)
165
+	content := dataBody["summary"].(string)
128 166
 	fmt.Println("content是谁?",content)
129 167
 	if len(content) == 0 {
130 168
     	this.ServeFailJsonSend(enums.ErrorCodeParamWrong,"内容不能为空")
131 169
     	return
132 170
 	}
133 171
 
134
-	sort := dataBody["sort"].(string)
172
+	sort := dataBody["order"].(string)
135 173
 	sors, _ := strconv.ParseInt(sort, 10, 64)
136 174
 	if sors  <=0 {
137 175
 		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "排序不能为空")
@@ -189,7 +227,7 @@ func  (this *ArticleManage) GetCategorys()  {
189 227
 }
190 228
 
191 229
 func (this *ArticleManage) EditCategorys()  {
192
-	id, _ := this.GetInt64("MenuId", 0)
230
+	id, _ := this.GetInt64("id", 0)
193 231
 	fmt.Println("ID是多少",id)
194 232
 	if id <= 0 {
195 233
 		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误:id")
@@ -198,18 +236,18 @@ func (this *ArticleManage) EditCategorys()  {
198 236
 	adminUserInfo := this.GetAdminUserInfo()
199 237
 	userOrgID := adminUserInfo.CurrentOrgId
200 238
 	categorys, err := article_service.GetCategorysByID(userOrgID, id)
201
-	 fmt.Println("err是设么",err)
239
+	fmt.Println("categorys是?",categorys,err)
202 240
 	if err != nil {
203
-		this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑类别失败:("+err.Error()+")")
241
+		this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
204 242
 		return
205 243
 	}
206 244
 	if categorys == nil {
207
-		this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑类别失败:(会员记录不存在)")
245
+		this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:(会员记录不存在)")
208 246
 		return
209 247
 	}
210
-
211 248
 	timenow := time.Now().Unix()
212 249
 
250
+
213 251
 	dataBody := make(map[string]interface{}, 0)
214 252
 	err = json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
215 253
 	if err != nil {
@@ -218,28 +256,25 @@ func (this *ArticleManage) EditCategorys()  {
218 256
 		return
219 257
 	}
220 258
 
221
-	name:= dataBody["Name"].(string)
259
+	name:= dataBody["name"].(string)
222 260
 	fmt.Println("name是谁?",name)
223
-	if len(name) == 0 {
224
-		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "姓名不能为空")
225
-		return
226
-	}
227 261
 
228
-	content := dataBody["Summary"].(string)
262
+	content := dataBody["summary"].(string)
229 263
 	fmt.Println("content是谁?",content)
230 264
 	if len(content) == 0 {
231 265
 		this.ServeFailJsonSend(enums.ErrorCodeParamWrong,"内容不能为空")
232 266
 		return
233 267
 	}
234 268
 
235
-	sort := dataBody["Order"].(string)
236
-	sors, _ := strconv.ParseInt(sort, 10, 64)
237
-	if sors  <=0 {
269
+	sors :=int64(dataBody["order"].(float64))
270
+	//sors, _ := strconv.ParseInt(sort, 10, 64)
271
+	fmt.Println("sort0",sors)
272
+	if sors  <= 0 {
238 273
 		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "排序不能为空")
239 274
 		return
240 275
 	}
241
-	fmt.Println("soert是谁?",sort)
242
-	fmt.Println("姓名:",name,"内容",content,"排序",sort)
276
+	fmt.Println("soert是谁?",sors)
277
+	fmt.Println("姓名:",name,"内容",content,"排序",sors)
243 278
 
244 279
 	category := models.ArticleCategory{
245 280
 		Name:    name,
@@ -249,14 +284,173 @@ func (this *ArticleManage) EditCategorys()  {
249 284
 		Status: 1,
250 285
 		Mtime: timenow,
251 286
 	}
252
-	err = article_service.EditCategory(category)
253
-	fmt.Println("err错误",err)
287
+	fmt.Println("category是?",category)
288
+	article_service.EditCategory(&category,userOrgID,id)
289
+	this.ServeSuccessJSON(map[string]interface{}{
290
+		"category":category,
291
+	})
292
+}
293
+
294
+func (this *ArticleManage) DeleteCategorys()  {
295
+	adminUserInfo := this.GetAdminUserInfo()
296
+
297
+	dataBody := make(map[string]interface{}, 0)
298
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
299
+	if err != nil {
300
+		utils.ErrorLog(err.Error())
301
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
302
+		return
303
+	}
304
+
305
+	idsInters := dataBody["ids"].([]interface{})
306
+	if len(idsInters) == 0 {
307
+		if err != nil {
308
+			this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:(没有选择会员)")
309
+			return
310
+		}
311
+	}
312
+
313
+	ids := make([]int64, 0)
314
+	for _, idsInter := range idsInters {
315
+		id := int64(idsInter.(float64))
316
+		ids = append(ids, id)
317
+	}
318
+
319
+	err = article_service.DeleteCategorys(adminUserInfo.CurrentOrgId, ids)
254 320
 	if err != nil {
255
-		this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑类别失败:("+err.Error()+")")
321
+		this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除分类失败:("+err.Error()+")")
256 322
 		return
257 323
 	}
258
-	fmt.Println(category)
324
+	returnData := make(map[string]interface{}, 0)
325
+	returnData["msg"] = "ok"
326
+	this.ServeSuccessJSON(returnData)
327
+	return
328
+}
329
+
330
+func (this *ArticleManage) Addvido(){
331
+	adminUserInfo := this.GetAdminUserInfo()
332
+	userOrgID := adminUserInfo.CurrentOrgId
333
+	dataBody := make(map[string]interface{}, 0)
334
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
335
+	fmt.Println("视频发布是什么呢",err)
336
+
337
+	if err != nil {
338
+		utils.ErrorLog(err.Error())
339
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
340
+		return
341
+	}
342
+
343
+	vidupload := dataBody["vio_upload"].(string)
344
+     if len(vidupload) == 0 {
345
+		 this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频不能为空")
346
+		 return
347
+	 }
348
+     fmt.Println("视频",vidupload)
349
+	vidname := dataBody["vid_name"].(string)
350
+	if len(vidname)==0{
351
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频标题不能为空")
352
+		return
353
+	}
354
+    fmt.Println("视频名称",vidname)
355
+	vidpic := dataBody["vid_pic"].(string)
356
+	if(vidpic == ""){
357
+		vidpic = vidupload + "?vframe/jpg/offset/1/w/300/h/200"
358
+	}
359
+	if len(vidpic)==0{
360
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频封面不能为空")
361
+		return
362
+	}
363
+    fmt.Println("视频图片",vidpic)
364
+	vidtype := int64(dataBody["vid_type"].(float64))
365
+	if vidtype <= 0 {
366
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "所属分类不能为空")
367
+		return
368
+	}
369
+    fmt.Println("视频类型",vidtype)
370
+	fmt.Println("视频",vidupload,"视频标题",vidname,"视频封面",vidpic,"视频类型",vidtype)
371
+	timenow := time.Now().Unix()
372
+	articles := models.Articles{
373
+       UserOrgId:userOrgID,
374
+       Ctime:timenow,
375
+       Type:2,
376
+       VideoUrl:vidupload,
377
+       Title:vidname,
378
+       Imgs:vidpic,
379
+       ClassId:vidtype,
380
+       ArticleStatus:1,
381
+	}
382
+
383
+	err = article_service.AddVido(articles)
384
+	if err !=nil{
385
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加分类失败")
386
+		return
387
+	}
388
+
259 389
 	this.ServeSuccessJSON(map[string]interface{}{
260
-		"category":categorys,
390
+		"vido":articles,
391
+	})
392
+}
393
+
394
+func (this *ArticleManage) SaveDraft()  {
395
+	adminUserInfo := this.GetAdminUserInfo()
396
+	userOrgID := adminUserInfo.CurrentOrgId
397
+	dataBody := make(map[string]interface{}, 0)
398
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
399
+	fmt.Println("视频发布是什么呢",err)
400
+
401
+	if err != nil {
402
+		utils.ErrorLog(err.Error())
403
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
404
+		return
405
+	}
406
+
407
+	vidupload := dataBody["vio_upload"].(string)
408
+	if len(vidupload) == 0 {
409
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频不能为空")
410
+		return
411
+	}
412
+	fmt.Println("视频",vidupload)
413
+	vidname := dataBody["vid_name"].(string)
414
+	if len(vidname)==0{
415
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频标题不能为空")
416
+		return
417
+	}
418
+	fmt.Println("视频名称",vidname)
419
+	vidpic := dataBody["vid_pic"].(string)
420
+	if(vidpic == ""){
421
+		vidpic = vidupload + "?vframe/jpg/offset/1/w/300/h/200"
422
+	}
423
+	if len(vidpic)==0{
424
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频封面不能为空")
425
+		return
426
+	}
427
+	fmt.Println("视频图片",vidpic)
428
+	vidtype := int64(dataBody["vid_type"].(float64))
429
+	if vidtype <= 0 {
430
+		this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "所属分类不能为空")
431
+		return
432
+	}
433
+	fmt.Println("视频类型",vidtype)
434
+	fmt.Println("视频",vidupload,"视频标题",vidname,"视频封面",vidpic,"视频类型",vidtype)
435
+	timenow := time.Now().Unix()
436
+	articles := models.Articles{
437
+		UserOrgId:userOrgID,
438
+		Ctime:timenow,
439
+		Type:2,
440
+		VideoUrl:vidupload,
441
+		Title:vidname,
442
+		Imgs:vidpic,
443
+		ClassId:vidtype,
444
+		ArticleStatus:2,
445
+	}
446
+
447
+	err = article_service.AddVido(articles)
448
+	if err !=nil{
449
+		this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加分类失败")
450
+		return
451
+	}
452
+
453
+	this.ServeSuccessJSON(map[string]interface{}{
454
+		"savedraft":articles,
261 455
 	})
262 456
 }

+ 84 - 0
controllers/marketing_tool/activity_controller.go Voir le fichier

@@ -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 Voir le fichier

@@ -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 Voir le fichier

@@ -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 {

+ 10 - 10
models/article_models.go Voir le fichier

@@ -2,16 +2,16 @@ package models
2 2
 
3 3
 type ArticleCategory struct{
4 4
 	//对应数据库中的字段
5
-	MenuId    int64  `gorm:"column:id" `
6
-	Name      string `gorm:"column:name" `
7
-	Order     int64  `gorm:"column:order" `
8
-	Status    int64  `gorm:"column:status" `
9
-	Summary   string `gorm:"column:summary" `
10
-	Type      int64  `gorm:"column:type"`
11
-	Mtime     int64  `gorm:"column:mtime"`
12
-	Ctime     int64  `gorm:"column:ctime"`
13
-	UserOrgId int64  `gorm:"column:user_org_id"`
14
-	Num       int64  `gorm:"column:num" json:"num"`
5
+	IMenuId int64 `gorm:"column:id" json:"id" form:"id"`
6
+	Name string `gorm:"column:name" json:"name" form:"Name"`
7
+	Order int64 `gorm:"column:order" json:"order" form:"order"`
8
+	Status int64 `gorm:"column:status" json:"status" form:"status"`
9
+	Summary string `gorm:"column:summary" json:"summary" form:"summary"`
10
+	Type int64 `gorm:"column:type" json:"type" form:"type"`
11
+	UserOrgId int64 `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
12
+	Mtime int64 `gorm:"column:mtime" json:"mtime" form:"mtime"`
13
+	Ctime int64 `gorm:"column:ctime" json:"ctime" form:"ctime"`
14
+	Num int64 `gorm:"column:num" json:"num" form:"num"`
15 15
 
16 16
 }
17 17
 

+ 17 - 3
service/article_service/article_category_service.go Voir le fichier

@@ -6,6 +6,7 @@ import (
6 6
 	"fmt"
7 7
 	"github.com/jinzhu/gorm"
8 8
 
9
+	"time"
9 10
 )
10 11
 
11 12
 func FindArticleCategoryType (userOrgId int64)(*[]models.ArticleCategory,error){
@@ -83,7 +84,20 @@ func GetCategorysByID(orgID int64,id int64)(categorys []*models.ArticleCategory,
83 84
 	return categorys,err
84 85
 }
85 86
 
86
-func EditCategory(category models.ArticleCategory)(err error)  {
87
-	err = service.PatientWriteDB().Save(&category).Error
88
-	return err
87
+func EditCategory(cat *models.ArticleCategory,orgID int64,id int64){
88
+	 service.PatientWriteDB().Model(cat).Where("user_org_id =? AND id =? AND status = ?", orgID, id, 1).Update(map[string]interface{}{"Name": cat.Name, "Summary": cat.Summary, "Order": cat.Order, "mtime": cat.Mtime})
89
+}
90
+
91
+func DeleteCategorys(orgID int64,ids[] int64)(err error){
92
+     if len(ids) ==1{
93
+      err =	service.PatientWriteDB().Model(&models.ArticleCategory{}).Where( "id=? and user_org_id = ?",ids[0],orgID).Update(map[string]interface{}{"Status":0,"mtime":time.Now().Unix()}).Error
94
+	 }else {
95
+	  err =	service.PatientWriteDB().Model(&models.ArticleCategory{}).Where("id IN (?) and user_org_id = ?",ids,orgID).Update(map[string]interface{}{"Status":0,"mtime":time.Now().Unix()}).Error
96
+	 }
97
+	 return
98
+}
99
+
100
+func AddVido(articles models.Articles) error  {
101
+	err := service.PatientWriteDB().Create(&articles).Error
102
+	return  err
89 103
 }

+ 22 - 0
service/marketing_tool_service/activity_service.go Voir le fichier

@@ -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
+}