소스 검색

会员管理-列表

zhengchengwu 5 년 전
부모
커밋
fad1564c62

+ 1 - 0
.gitignore 파일 보기

@@ -0,0 +1 @@
1
+/*.exe

+ 93 - 0
controllers/members/members_controller.go 파일 보기

@@ -0,0 +1,93 @@
1
+package members
2
+
3
+import (
4
+	base_ctl "SCRM/controllers"
5
+	"SCRM/enums"
6
+	"SCRM/service/member_service"
7
+	"SCRM/utils"
8
+
9
+	"github.com/astaxie/beego"
10
+)
11
+
12
+func MemberCtlRegistRouters() {
13
+	beego.Router("/api/members", &MembersAPIController{}, "get:GetMembers")
14
+}
15
+
16
+type MembersAPIController struct {
17
+	base_ctl.BaseAuthAPIController
18
+}
19
+
20
+func (c *MembersAPIController) GetMembers() {
21
+	page, _ := c.GetInt64("page", 1)
22
+	limit, _ := c.GetInt64("limit", 10)
23
+	startTime := c.GetString("start_time", "")
24
+	endTime := c.GetString("end_time", "")
25
+	searchKey := c.GetString("search", "")
26
+	level, _ := c.GetInt64("level", 0)
27
+	source, _ := c.GetInt64("source", 0)
28
+	tag, _ := c.GetInt64("tag", 0)
29
+	init, _ := c.GetInt64("init", 0)
30
+
31
+	if page <= 0 {
32
+		page = 1
33
+	}
34
+	if limit <= 0 {
35
+		limit = 10
36
+	}
37
+
38
+	adminUserInfo := c.GetAdminUserInfo()
39
+
40
+	timeLayout := "2006-01-02 15:04:05"
41
+
42
+	var isStartTime bool
43
+	var theStartTIme int64
44
+	if len(startTime) > 0 {
45
+		theTime, err := utils.ParseTimeStringToTime(timeLayout, startTime+" 00:00:00")
46
+		if err != nil {
47
+			c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "开始时间错误")
48
+			return
49
+		}
50
+		isStartTime = true
51
+		theStartTIme = theTime.Unix()
52
+	}
53
+	var isEndTime bool
54
+	var theEndtTIme int64
55
+	if len(endTime) > 0 {
56
+		theTime, err := utils.ParseTimeStringToTime(timeLayout, endTime+" 23:59:59")
57
+		if err != nil {
58
+			c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "结束时间错误")
59
+			return
60
+		}
61
+		isEndTime = true
62
+		theEndtTIme = theTime.Unix()
63
+	}
64
+
65
+	members, total, err := member_service.GetMemberList(adminUserInfo.CurrentOrgId, page, limit, level, source, tag, theStartTIme, theEndtTIme, isStartTime, isEndTime, searchKey)
66
+
67
+	if err != nil {
68
+		c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取会员列表失败")
69
+		return
70
+	}
71
+
72
+	returnData := make(map[string]interface{}, 0)
73
+	if init == 1 {
74
+		cards, err := member_service.GetCardList(adminUserInfo.CurrentOrgId)
75
+		if err != nil {
76
+			c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取会员卡列表失败")
77
+			return
78
+		}
79
+		returnData["cards"] = cards
80
+
81
+		tags, err := member_service.GetTagList(adminUserInfo.CurrentOrgId)
82
+		if err != nil {
83
+			c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取标签列表失败")
84
+			return
85
+		}
86
+		returnData["tags"] = tags
87
+	}
88
+	returnData["members"] = members
89
+	returnData["total"] = total
90
+
91
+	c.ServeSuccessJSON(returnData)
92
+	return
93
+}

+ 5 - 0
controllers/members/router_controller.go 파일 보기

@@ -0,0 +1,5 @@
1
+package members
2
+
3
+func RegisterRouters() {
4
+	MemberCtlRegistRouters()
5
+}

+ 35 - 0
models/user_customer_models.go 파일 보기

@@ -0,0 +1,35 @@
1
+package models
2
+
3
+type UserCustomer struct {
4
+	ID              int64  `gorm:"column:id" json:"id" form:"id"`
5
+	UserOrgId       int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
6
+	UserId          int64  `gorm:"column:user_id" json:"user_id" form:"user_id"`
7
+	Mobile          string `gorm:"column:mobile" json:"mobile" form:"mobile"`
8
+	Name            string `gorm:"column:name" json:"name" form:"name"`
9
+	Gender          int64  `gorm:"column:gender" json:"gender" form:"gender"`
10
+	ProvinceId      int64  `gorm:"column:province_id" json:"province_id" form:"province_id"`
11
+	CityId          int64  `gorm:"column:city_id" json:"city_id" form:"city_id"`
12
+	Address         string `gorm:"column:address" json:"address" form:"address"`
13
+	Birthday        int64  `gorm:"column:birthday" json:"birthday" form:"birthday"`
14
+	TreatType       int64  `gorm:"column:treat_type" json:"treat_type" form:"treat_type"`
15
+	Relationship    int64  `gorm:"column:relationship" json:"relationship" form:"relationship"`
16
+	IllnessId       int64  `gorm:"column:illness_id" json:"illness_id" form:"illness_id"`
17
+	WechatOpenid    string `gorm:"column:wechat_openid" json:"wechat_openid" form:"wechat_openid"`
18
+	Membership      int64  `gorm:"column:membership" json:"membership" form:"membership"`
19
+	Sources         int64  `gorm:"column:sources" json:"sources" form:"sources"`
20
+	Status          int64  `gorm:"column:status" json:"status" form:"status"`
21
+	CreatedTime     int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
22
+	UpdatedTime     int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
23
+	Avatar          string `gorm:"column:avatar" json:"avatar" form:"avatar"`
24
+	WechatUnionid   string `gorm:"column:wechat_unionid" json:"wechat_unionid" form:"wechat_unionid"`
25
+	Remark          string `gorm:"column:remark" json:"remark" form:"remark"`
26
+	MedicalDiagnose string `gorm:"column:medical_diagnose" json:"medical_diagnose" form:"medical_diagnose"`
27
+	YzUid           int64  `gorm:"column:yz_uid" json:"yz_uid" form:"yz_uid"`
28
+	Tttime          int64  `gorm:"column:tttime" json:"tttime" form:"tttime"`
29
+	IllDate         int64  `gorm:"column:ill_date" json:"ill_date" form:"ill_date"`
30
+	DistrictId      int64  `gorm:"column:district_id" json:"district_id" form:"district_id"`
31
+}
32
+
33
+func (UserCustomer) TableName() string {
34
+	return "sgj_user_customer"
35
+}

+ 21 - 0
models/user_membership_card_models.go 파일 보기

@@ -0,0 +1,21 @@
1
+package models
2
+
3
+type UserMembershipCard struct {
4
+	ID              int64  `gorm:"column:id" json:"id" form:"id"`
5
+	UserOrgId       int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
6
+	CardName        string `gorm:"column:card_name" json:"card_name" form:"card_name"`
7
+	CardLevel       int64  `gorm:"column:card_level" json:"card_level" form:"card_level"`
8
+	UpgradeIntegral int64  `gorm:"column:upgrade_integral" json:"upgrade_integral" form:"upgrade_integral"`
9
+	CardRight       string `gorm:"column:card_right" json:"card_right" form:"card_right"`
10
+	UseNotice       string `gorm:"column:use_notice" json:"use_notice" form:"use_notice"`
11
+	BackgroundType  int64  `gorm:"column:background_type" json:"background_type" form:"background_type"`
12
+	Background      string `gorm:"column:background" json:"background" form:"background"`
13
+	ServicePhone    string `gorm:"column:service_phone" json:"service_phone" form:"service_phone"`
14
+	Status          int64  `gorm:"column:status" json:"status" form:"status"`
15
+	CreatedTime     int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
16
+	UpdatedTime     int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
17
+}
18
+
19
+func (UserMembershipCard) TableName() string {
20
+	return "sgj_user_membership_card"
21
+}

+ 14 - 0
models/user_tag_models.go 파일 보기

@@ -0,0 +1,14 @@
1
+package models
2
+
3
+type UserTags struct {
4
+	ID          int64  `gorm:"column:id" json:"id" form:"id"`
5
+	TagName     string `gorm:"column:tag_name" json:"tag_name" form:"tag_name"`
6
+	UserOrgId   int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
7
+	Status      int64  `gorm:"column:status" json:"status" form:"status"`
8
+	CreatedTime int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
9
+	UpdatedTime int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
10
+}
11
+
12
+func (UserTags) TableName() string {
13
+	return "sgj_user_tags"
14
+}

+ 2 - 0
routers/router.go 파일 보기

@@ -4,6 +4,7 @@ import (
4 4
 	"SCRM/controllers/admin_user"
5 5
 	"SCRM/controllers/global"
6 6
 	"SCRM/controllers/login"
7
+	"SCRM/controllers/members"
7 8
 	"SCRM/controllers/role"
8 9
 
9 10
 	"github.com/astaxie/beego"
@@ -23,4 +24,5 @@ func init() {
23 24
 	admin_user.RegisterRouters()
24 25
 	login.RegisterRouters()
25 26
 	role.RegisterRouters()
27
+	members.RegisterRouters()
26 28
 }

+ 12 - 0
service/member_service/cards_service.go 파일 보기

@@ -0,0 +1,12 @@
1
+package member_service
2
+
3
+import (
4
+	"SCRM/models"
5
+	"SCRM/service"
6
+)
7
+
8
+func GetCardList(orgID int64) (cards []*models.UserMembershipCard, err error) {
9
+	err = service.UserReadDB().Model(&models.UserMembershipCard{}).Where("status=1 and user_org_id=?", orgID).Order("card_level asc, id asc ").Find(&cards).Error
10
+
11
+	return
12
+}

+ 41 - 0
service/member_service/member_service.go 파일 보기

@@ -0,0 +1,41 @@
1
+package member_service
2
+
3
+import (
4
+	"SCRM/models"
5
+	"SCRM/service"
6
+	"strings"
7
+)
8
+
9
+func GetMemberList(orgID, page, limit, level, source, tag, startTime, endTime int64, isStartTime, isEndTime bool, searchKey string) (members []*Members, total int64, err error) {
10
+	db := service.UserReadDB().Model(&models.UserCustomer{}).Where("status=1")
11
+	if orgID > 0 {
12
+		db = db.Where("user_org_id=?", orgID)
13
+	}
14
+	if source > 0 {
15
+		db = db.Where("sources=?", source)
16
+	}
17
+
18
+	if isStartTime {
19
+		db = db.Where("created_time>=?", startTime)
20
+	}
21
+	if isEndTime {
22
+		db = db.Where("created_time<=?", endTime)
23
+	}
24
+	if len(searchKey) > 0 {
25
+		searchKey = "%" + searchKey + "%"
26
+		db = db.Where("name LIKE ? OR mobile LIKE ? ", searchKey, searchKey)
27
+	}
28
+
29
+	offset := (page - 1) * limit
30
+	err = db.Count(&total).Order("id desc").Offset(offset).Limit(limit).Find(&members).Error
31
+	if err != nil {
32
+		return
33
+	}
34
+	if len(members) > 0 {
35
+		for _, member := range members {
36
+			member.Avatar = strings.Replace(member.Avatar, "http://7xkofe.com1.z0.glb.clouddn.com", "https://images.shengws.com", 1)
37
+		}
38
+	}
39
+
40
+	return
41
+}

+ 11 - 0
service/member_service/models.go 파일 보기

@@ -0,0 +1,11 @@
1
+package member_service
2
+
3
+import (
4
+	"SCRM/models"
5
+)
6
+
7
+type Members struct {
8
+	models.UserCustomer
9
+
10
+	// Tags         []tags `gorm:"many2many:user_languages;"`
11
+}

+ 12 - 0
service/member_service/tags_service.go 파일 보기

@@ -0,0 +1,12 @@
1
+package member_service
2
+
3
+import (
4
+	"SCRM/models"
5
+	"SCRM/service"
6
+)
7
+
8
+func GetTagList(orgID int64) (tags []*models.UserTags, err error) {
9
+	err = service.UserReadDB().Model(&models.UserTags{}).Where("status=1 and user_org_id=?", orgID).Order("id asc").Find(&tags).Error
10
+
11
+	return
12
+}