Browse Source

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/services into dev

wangfei 6 years ago
parent
commit
2f129368c1

+ 89
- 0
controllers/luckdrawlist/luckdrawlist.go View File

@@ -0,0 +1,89 @@
1
+package luckdrawlist
2
+
3
+import (
4
+	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/service/luckdrawlist"
7
+)
8
+
9
+// LuckdrawlistController 信息
10
+type LuckdrawlistController struct {
11
+	dao *luckdrawlist.LuckdrawlistServ
12
+	controllers.BaseController
13
+}
14
+
15
+// Constructor 初始化 Controller
16
+// @Title Constructor
17
+// @Description 初始化 Controller, 系统自动调用
18
+func (c *LuckdrawlistController) Constructor() {
19
+	c.dao = luckdrawlist.NewLuckdrawlistServ(c.Context)
20
+}
21
+func (c *LuckdrawlistController) GetLuckdrawList() {
22
+	caseid := c.GetString("caseid")
23
+	page, _ := c.GetInt("page")
24
+	pagesize, _ := c.GetInt("pagesize")
25
+	if page < 0 {
26
+		page = 1
27
+	}
28
+
29
+	if pagesize <= 0 {
30
+		pagesize = 10
31
+	}
32
+	list, total, err := c.dao.GetLuckdrawList(caseid, page, pagesize)
33
+	if err != nil {
34
+		c.ResponseError(err)
35
+	}
36
+	c.ResponseJSON(map[string]interface{}{
37
+		"list":     list,
38
+		"page":     page,
39
+		"pagesize": pagesize,
40
+		"pagenum":  total,
41
+	})
42
+}
43
+
44
+func (c *LuckdrawlistController) GetLuckShareList() {
45
+	caseid := c.GetString("caseid")
46
+	page, _ := c.GetInt("page")
47
+	pagesize, _ := c.GetInt("pagesize")
48
+	if page < 0 {
49
+		page = 1
50
+	}
51
+
52
+	if pagesize <= 0 {
53
+		pagesize = 10
54
+	}
55
+	toPhone := c.GetString(":toPhone")
56
+	fromPhone := c.GetString(":fromPhone")
57
+	list, total, err := c.dao.GetLuckShareList(caseid, fromPhone, toPhone, page, pagesize)
58
+	if err != nil {
59
+		c.ResponseError(err)
60
+	}
61
+	c.ResponseJSON(map[string]interface{}{
62
+		"list":     list,
63
+		"page":     page,
64
+		"pagesize": pagesize,
65
+		"pagenum":  total,
66
+	})
67
+
68
+}
69
+
70
+func (c *LuckdrawlistController) GetVerifyList() {
71
+	luckdrawId := c.GetString(":luckdrawId")
72
+	luckdraw, err := c.dao.GetVerifyList(luckdrawId)
73
+	if err != nil {
74
+		c.ResponseError(err)
75
+	}
76
+	c.ResponseJSON(luckdraw)
77
+}
78
+
79
+func (c *LuckdrawlistController) VerifyLuckdraw() {
80
+	sysUser := c.Context.Get("user").(model.SysUser)
81
+	userId := sysUser.UserId
82
+	luckdrawId := c.GetString("luckdrawId")
83
+	err := c.dao.VerifyLuckdraw(luckdrawId, userId)
84
+	if err != nil {
85
+		c.ResponseError(err)
86
+	}
87
+	c.ResponseJSON("核销成功")
88
+
89
+}

+ 1
- 1
models/bodychecklist/bodychecklist.go View File

@@ -54,7 +54,7 @@ FROM
54 54
 	ta_body_check a
55 55
 	INNER JOIN ta_customer b ON a.user_id = b.customer_id
56 56
 	INNER JOIN sys_case c ON c.case_id = a.case_id
57
-	where and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
57
+	where %s and  a.status > ` + strconv.Itoa(models.STATUS_DEL)
58 58
 	if phone != "" {
59 59
 		sql += `and b.phone = '` + phone + `'`
60 60
 	}

+ 111
- 0
models/luckdrawlist/luckdrawlist.go View File

@@ -1,8 +1,11 @@
1 1
 package luckdrawlist
2 2
 
3 3
 import (
4
+	"fmt"
4 5
 	"spaceofcheng/services/models/model"
5 6
 	"spaceofcheng/services/utils"
7
+	"strings"
8
+	"time"
6 9
 
7 10
 	"github.com/go-xorm/xorm"
8 11
 )
@@ -29,3 +32,111 @@ type Luckdraw struct {
29 32
 	CustomerName           string
30 33
 	Phone                  string
31 34
 }
35
+
36
+func (m *LuckdrawDAO) GetLuckdrawList(filters []string, limit []int) ([]Luckdraw, int64, error) {
37
+	var luckdraw []Luckdraw
38
+	filterString := ""
39
+	if len(filters) > 0 {
40
+		filterString = strings.Join(filters, " and ")
41
+		filterString += " and "
42
+	}
43
+	sql := `SELECT
44
+	a.* ,
45
+	c.case_name,
46
+	b.name AS ActivityName,
47
+	d.name,
48
+	d.customer_name,
49
+	d.phone
50
+FROM
51
+	ta_luckdraw_record a
52
+	LEFT JOIN ta_luckdraw b ON a.luckdraw_id = b.id
53
+	LEFT JOIN sys_case c ON a.case_id = c.case_id
54
+	LEFT JOIN ta_customer d ON a.user_id = d.customer_id
55
+	where %s 1=1 `
56
+	sql += ` order by a.create_date desc `
57
+	total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckdraw, fmt.Sprintf(sql, filterString), limit)
58
+	if err != nil {
59
+		return nil, 0, err
60
+	}
61
+	return luckdraw, total, err
62
+
63
+}
64
+
65
+func (m *LuckdrawDAO) GetLuckShareList(fromPhone, toPhone string, filters []string, limit []int) ([]model.TaShareLuckyRecord, int64, error) {
66
+	var luckShare []model.TaShareLuckyRecord
67
+	filterString := ""
68
+	if len(filters) > 0 {
69
+		filterString = strings.Join(filters, " and ")
70
+		filterString += " and "
71
+	}
72
+	sql := `select * from ta_share_lucky_record where %s 1=1`
73
+	if fromPhone != "" {
74
+		sql += ` and from_customer_tel = ` + fromPhone
75
+	}
76
+	if toPhone != "" {
77
+		sql += ` and to_customer_tel = ` + toPhone
78
+	}
79
+	sql += ` order by a.create_date desc `
80
+	total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckShare, fmt.Sprintf(sql, filterString), limit)
81
+	if err != nil {
82
+		return nil, 0, err
83
+	}
84
+	return luckShare, total, err
85
+}
86
+
87
+func (m *LuckdrawDAO) GetLuckdrawById(luckdrawId string) (*Luckdraw, error) {
88
+	var luckdraw []Luckdraw
89
+	sql := `SELECT
90
+	a.*,
91
+	c.case_name,
92
+	b.NAME AS ActivityName,
93
+	d.NAME,
94
+	d.customer_name,
95
+	d.phone 
96
+FROM
97
+	ta_luckdraw_record a
98
+	INNER JOIN ta_luckdraw b ON a.luckdraw_id = b.id
99
+	INNER JOIN sys_case c ON a.case_id = c.case_id
100
+	INNER JOIN ta_customer d ON a.user_id = d.customer_id
101
+	INNER JOIN ta_luckdraw_prize e ON e.id = a.prize_id 
102
+WHERE
103
+	 DATE_FORMAT( e.verification_start, '%Y-%m-%d' ) <= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
104
+	 AND DATE_FORMAT( e.verification_end, '%Y-%m-%d' ) >= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
105
+	 AND a.id = '` + luckdrawId + `'`
106
+	err := m.db.Sql(sql).Find(&luckdraw)
107
+	if err != nil {
108
+		return nil, err
109
+	}
110
+	if len(luckdraw) > 0 {
111
+		return &luckdraw[0], err
112
+	}
113
+	return nil, nil
114
+}
115
+
116
+func (m *LuckdrawDAO) VerifyLuckdraw(luckdrawId int) error {
117
+	var luckdraw = model.TaLuckdrawRecord{
118
+		Id:           luckdrawId,
119
+		WriteoffDate: time.Now(),
120
+		Status:       1,
121
+	}
122
+	var cols = []string{
123
+		"writeoff_date",
124
+		"status",
125
+	}
126
+	_, err := m.db.Cols(cols...).Where("id = ?", luckdraw.Id).Update(luckdraw)
127
+	return err
128
+}
129
+
130
+func (m *LuckdrawDAO) AddWriteoffRecord(luckdraw *Luckdraw, userId string) error {
131
+	var luckWriteoff model.TaLuckdrawWriteoff
132
+	luckWriteoff.CaseId = luckdraw.CaseId
133
+	luckWriteoff.LuckdrawId = luckdraw.LuckdrawId
134
+	luckWriteoff.OrgId = luckdraw.OrgId
135
+	luckWriteoff.RecordId = luckdraw.Id
136
+	luckWriteoff.Status = 0
137
+	luckWriteoff.WriteoffDate = time.Now()
138
+	luckWriteoff.WriteoffUser = userId
139
+	_, err := m.db.Insert(luckWriteoff)
140
+	return err
141
+
142
+}

+ 2
- 2
models/model/ta_luckdraw_record.go View File

@@ -9,12 +9,12 @@ type TaLuckdrawRecord struct {
9 9
 	LuckdrawId   int       `xorm:"INT(11)"`
10 10
 	PrizeId      int       `xorm:"INT(11)"`
11 11
 	PrizeName    string    `xorm:"VARCHAR(50)"`
12
-	UserId       int       `xorm:"INT(11)"`
12
+	UserId       string    `xorm:"VARCHAR(64)"`
13 13
 	UserName     string    `xorm:"VARCHAR(50)"`
14 14
 	UserHeadImg  string    `xorm:"TEXT"`
15 15
 	CreateDate   time.Time `xorm:"DATETIME"`
16 16
 	Status       int       `xorm:"SMALLINT(6)"`
17 17
 	WriteoffDate time.Time `xorm:"DATETIME"`
18 18
 	OrgId        string    `xorm:"VARCHAR(64)"`
19
-	CaseId       int       `xorm:"INT(11)"`
19
+	CaseId       string    `xorm:"VARCHAR(64)"`
20 20
 }

+ 2
- 2
models/model/ta_luckdraw_writeoff.go View File

@@ -9,8 +9,8 @@ type TaLuckdrawWriteoff struct {
9 9
 	LuckdrawId   int       `xorm:"INT(11)"`
10 10
 	RecordId     int       `xorm:"INT(11)"`
11 11
 	WriteoffDate time.Time `xorm:"DATETIME"`
12
-	WriteoffUser int       `xorm:"INT(11)"`
12
+	WriteoffUser string    `xorm:"VARCHAR(64)"`
13 13
 	Status       int       `xorm:"SMALLINT(6)"`
14 14
 	OrgId        string    `xorm:"VARCHAR(64)"`
15
-	CaseId       int       `xorm:"INT(11)"`
15
+	CaseId       string    `xorm:"VARCHAR(64)"`
16 16
 }

+ 3
- 3
models/model/ta_share_lucky_record.go View File

@@ -6,16 +6,16 @@ import (
6 6
 
7 7
 type TaShareLuckyRecord struct {
8 8
 	Id                 int       `xorm:"not null pk autoincr INT(11)"`
9
-	FromCustomerId     int       `xorm:"INT(11)"`
9
+	FromCustomerId     string    `xorm:"VARCHAR(64)"`
10 10
 	FromCustomerName   string    `xorm:"VARCHAR(32)"`
11 11
 	FromCustomerWxname string    `xorm:"VARCHAR(64)"`
12 12
 	FromCustomerTel    string    `xorm:"VARCHAR(32)"`
13
-	ToCustomerId       int       `xorm:"INT(11)"`
13
+	ToCustomerId       string    `xorm:"VARCHAR(64)"`
14 14
 	ToCustomerName     string    `xorm:"VARCHAR(32)"`
15 15
 	ToCustomerWxname   string    `xorm:"VARCHAR(64)"`
16 16
 	ToCustomerTel      string    `xorm:"VARCHAR(32)"`
17 17
 	CreateDate         time.Time `xorm:"DATETIME"`
18
-	CaseId             int       `xorm:"INT(11)"`
18
+	CaseId             string    `xorm:"VARCHAR(64)"`
19 19
 	Status             int       `xorm:"SMALLINT(6)"`
20 20
 	LuckydrawId        int       `xorm:"INT(11)"`
21 21
 	LuckydrawName      string    `xorm:"VARCHAR(128)"`

+ 9
- 0
routers/common.go View File

@@ -2,6 +2,7 @@ package routers
2 2
 
3 3
 import (
4 4
 	"spaceofcheng/services/controllers"
5
+	"spaceofcheng/services/controllers/bodychecklist"
5 6
 	"spaceofcheng/services/controllers/card"
6 7
 	"spaceofcheng/services/controllers/cases"
7 8
 	"spaceofcheng/services/controllers/channel"
@@ -10,6 +11,7 @@ import (
10 11
 	"spaceofcheng/services/controllers/customer"
11 12
 	"spaceofcheng/services/controllers/goods"
12 13
 	"spaceofcheng/services/controllers/gymcard"
14
+	"spaceofcheng/services/controllers/luckdrawlist"
13 15
 	"spaceofcheng/services/controllers/marketing"
14 16
 	"spaceofcheng/services/controllers/message"
15 17
 	"spaceofcheng/services/controllers/system"
@@ -177,6 +179,13 @@ func getCommonRoutes() beego.LinkNamespace {
177 179
 		beego.NSRouter("/gymcard", &gymcard.GymcardController{}, "post:SaveGymcard"),
178 180
 		beego.NSRouter("/gymcard", &gymcard.GymcardController{}, "put:SaveGymcard"),
179 181
 		beego.NSRouter("/gymcard/:customerGymId", &gymcard.GymcardController{}, "put:VerifyCustomerGymcard"),
182
+		// luckdrawlist 抽奖
183
+		beego.NSRouter("luckdrawlist", &luckdrawlist.LuckdrawlistController{}, "get:GetLuckdrawList"),
184
+		beego.NSRouter("luckdrawlist/:toPhone/:fromPhone", &luckdrawlist.LuckdrawlistController{}, "get:GetLuckShareList"),
185
+		beego.NSRouter("luckdrawlist/:luckdrawId", &luckdrawlist.LuckdrawlistController{}, "get:GetVerifyList"),
186
+		beego.NSRouter("luckdrawlist/:luckdrawId", &luckdrawlist.LuckdrawlistController{}, "put:VerifyLuckdraw"),
187
+		// bodychecklist 体检列表
188
+		beego.NSRouter("bodychecklist", &bodychecklist.BodychecklistController{}, "get:GetBodyCheckList"),
180 189
 		// role 角色
181 190
 		beego.NSRouter("/role", &system.RoleController{}, "get:GetRoleList"),
182 191
 		beego.NSRouter("/role/:roleid", &system.RoleController{}, "get:GetRoleByID"),

+ 0
- 5
service/gymcard/gymcard.go View File

@@ -10,8 +10,6 @@ import (
10 10
 	"spaceofcheng/services/utils"
11 11
 	"strings"
12 12
 	"time"
13
-
14
-	"github.com/astaxie/beego"
15 13
 )
16 14
 
17 15
 // GymcardServ 系统处理
@@ -161,9 +159,6 @@ func (s *GymcardServ) SaveGymcard(newGym gymcard.Gymcard) (*gymcard.Gymcard, err
161 159
 		utils.LogError("保存健身卡信息失败" + err.Error())
162 160
 		return nil, errors.New("保存健身卡信息失败")
163 161
 	}
164
-	beego.Error("-------------------------------------")
165
-	beego.Error(newGym)
166
-	beego.Error("-------------------------------------")
167 162
 	return &newGym, nil
168 163
 }
169 164
 

+ 131
- 0
service/luckdrawlist/luckdrawlist.go View File

@@ -0,0 +1,131 @@
1
+package luckdrawlist
2
+
3
+import (
4
+	"errors"
5
+	"spaceofcheng/services/models/luckdrawlist"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/utils"
8
+	"strconv"
9
+	"strings"
10
+)
11
+
12
+// LuckdrawlistServ 系统处理
13
+type LuckdrawlistServ struct {
14
+	ctx *utils.Context
15
+	dao *luckdrawlist.LuckdrawDAO
16
+}
17
+
18
+// NewLuckdrawlistServ 初始化
19
+func NewLuckdrawlistServ(ctx *utils.Context) *LuckdrawlistServ {
20
+	return &LuckdrawlistServ{
21
+		ctx: ctx,
22
+		dao: luckdrawlist.NewLuckdrawDAO(ctx),
23
+	}
24
+}
25
+func (s *LuckdrawlistServ) GetLuckShareList(caseID, fromPhone, toPhone string, pagenavi ...int) ([]model.TaShareLuckyRecord, int64, error) {
26
+	filters := []string{}
27
+	if caseID != "" {
28
+		if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
29
+			return nil, 0, err
30
+		}
31
+
32
+		filters = []string{
33
+			"case_id='" + caseID + "'",
34
+		}
35
+	} else {
36
+		casesRaw := s.ctx.Get("cases")
37
+		if casesRaw == nil {
38
+			return nil, 0, errors.New("请设置过滤案场")
39
+		}
40
+
41
+		cases := casesRaw.([]model.SysUserCase)
42
+		caseIDs := []string{}
43
+		for _, cs := range cases {
44
+			caseIDs = append(caseIDs, cs.CaseId)
45
+		}
46
+
47
+		filters = []string{
48
+			"case_id in ('" + strings.Join(caseIDs, "','") + "')",
49
+		}
50
+	}
51
+
52
+	limit := utils.GetPageNaviLimit(pagenavi...)
53
+	res, total, err := s.dao.GetLuckShareList(fromPhone, toPhone, filters, limit)
54
+	if err != nil {
55
+		utils.LogError("查询卡列表失败: " + err.Error())
56
+		return nil, 0, errors.New("查询卡列表失败")
57
+	}
58
+
59
+	return res, total, nil
60
+
61
+}
62
+
63
+func (s *LuckdrawlistServ) GetLuckdrawList(caseID string, pagenavi ...int) ([]luckdrawlist.Luckdraw, int64, error) {
64
+	filters := []string{}
65
+	if caseID != "" {
66
+		if err := utils.NewAuthEngine(s.ctx).CheckCase(caseID); err != nil {
67
+			return nil, 0, err
68
+		}
69
+
70
+		filters = []string{
71
+			"case_id='" + caseID + "'",
72
+		}
73
+	} else {
74
+		casesRaw := s.ctx.Get("cases")
75
+		if casesRaw == nil {
76
+			return nil, 0, errors.New("请设置过滤案场")
77
+		}
78
+
79
+		cases := casesRaw.([]model.SysUserCase)
80
+		caseIDs := []string{}
81
+		for _, cs := range cases {
82
+			caseIDs = append(caseIDs, cs.CaseId)
83
+		}
84
+
85
+		filters = []string{
86
+			"case_id in ('" + strings.Join(caseIDs, "','") + "')",
87
+		}
88
+	}
89
+
90
+	limit := utils.GetPageNaviLimit(pagenavi...)
91
+	res, total, err := s.dao.GetLuckdrawList(filters, limit)
92
+	if err != nil {
93
+		utils.LogError("查询抽奖列表失败: " + err.Error())
94
+		return nil, 0, errors.New("查询抽奖列表失败")
95
+	}
96
+
97
+	return res, total, nil
98
+
99
+}
100
+
101
+func (s *LuckdrawlistServ) GetVerifyList(luckdrawId string) (*luckdrawlist.Luckdraw, error) {
102
+	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId)
103
+	if err != nil {
104
+		utils.LogError("查询抽奖列表失败: " + err.Error())
105
+		return nil, errors.New("查询抽奖列表失败")
106
+	}
107
+	return luckdraw, nil
108
+
109
+}
110
+
111
+func (s *LuckdrawlistServ) VerifyLuckdraw(luckdrawId, userId string) error {
112
+	luckdraw, err := s.dao.GetLuckdrawById(luckdrawId)
113
+
114
+	luckdrawIdInt, err := strconv.Atoi(luckdrawId)
115
+	if err != nil {
116
+		utils.LogError("核销失败: " + err.Error())
117
+		return errors.New("核销失败")
118
+	}
119
+	err = s.dao.VerifyLuckdraw(luckdrawIdInt)
120
+	if err != nil {
121
+		utils.LogError("核销失败: " + err.Error())
122
+		return errors.New("核销失败")
123
+	}
124
+	err = s.dao.AddWriteoffRecord(luckdraw, userId)
125
+	if err != nil {
126
+		utils.LogError("核销失败: " + err.Error())
127
+		return errors.New("核销失败")
128
+	}
129
+	return nil
130
+
131
+}