胡轶钦 před 6 roky
rodič
revize
9fa76a7d03

+ 7
- 0
conf/app.conf Zobrazit soubor

@@ -7,6 +7,12 @@ EnableDocs = true
7 7
 excelpath = ./
8 8
 clienturl = http://dev.ycjcjy.com/c-v2
9 9
 
10
+postwechatInfo = http://testapi.chioy.com.cn/api/network/postwechatInfo
11
+qrcodePrefix = bodycheck_
12
+followText = 您正在使用悦琦设备进行体检~
13
+resultURL = http://dev.ycjcjy.com/bodyCheck
14
+
15
+
10 16
 
11 17
 [cros]
12 18
 allowMode = dev
@@ -16,6 +22,7 @@ allowOrigin = http://localhost:9528
16 22
 # GET, POST etc
17 23
 allowMethods = *
18 24
 
25
+
19 26
 [api]
20 27
 prefix = "/api"
21 28
 guest = "/guest/:org"

+ 13
- 0
controllers/gymcard/gymcard.go Zobrazit soubor

@@ -119,6 +119,19 @@ func (c *GymcardController) SendGymToCustomer() {
119 119
 	c.ResponseJSON(customerGym)
120 120
 }
121 121
 
122
+// SendGymToCustomer 后台发卡给客户
123
+func (c *GymcardController) BackSendGymToCustomer() {
124
+	gymcardId := c.GetString(":gymcardId")
125
+	customerId := c.GetString(":customerId")
126
+	sysUser := c.Context.Get("user").(model.SysUser)
127
+	userId := sysUser.UserId
128
+	customerGym, err := c.dao.BackSendGymCardToUser(gymcardId, userId, customerId)
129
+	if err != nil {
130
+		c.ResponseError(err)
131
+	}
132
+	c.ResponseJSON(customerGym)
133
+}
134
+
122 135
 // VerifyCustomerGymcard 核销客户健身卡
123 136
 func (c *GymcardController) VerifyCustomerGymcard() {
124 137
 	cases := c.Context.Get("cases").([]model.SysUserCase)

+ 161
- 0
models/bodycheck/bodycheck.go Zobrazit soubor

@@ -0,0 +1,161 @@
1
+package bodycheck
2
+
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+	"spaceofcheng/services/utils"
6
+	"strconv"
7
+	"time"
8
+
9
+	"github.com/go-xorm/xorm"
10
+)
11
+
12
+// DAO 当前数据库操作对象
13
+type DAO struct {
14
+	ctx *utils.Context
15
+	db  *xorm.Session
16
+}
17
+
18
+// NewDAO 初始化DAO
19
+func NewDAO(ctx *utils.Context) *DAO {
20
+	return &DAO{
21
+		ctx: ctx,
22
+		db:  ctx.DB,
23
+	}
24
+}
25
+
26
+// GetBodyCheckByUser 根据用户信息获取体检信息
27
+func (m *DAO) GetBodyCheckByUser(userID int) ([]model.TaBodyCheck, error) {
28
+	var bodychecks []model.TaBodyCheck
29
+	var err error
30
+	err = m.db.Where("user_id=?", userID).And("status=?", 1).Desc("create_date").Find(&bodychecks)
31
+	return bodychecks, err
32
+}
33
+
34
+// GetCheckSpecs 获取项目指标信息
35
+func (m *DAO) GetCheckSpecs() ([]model.TdCheckSpec, error) {
36
+	var specs []model.TdCheckSpec
37
+	err := m.db.Find(&specs)
38
+	return specs, err
39
+}
40
+
41
+// GetCheckByUserAndEquipmentID 根据用户与设备ID获取体检信息
42
+func (m *DAO) GetCheckByUserAndEquipmentID(userID int, EquipmentID string) (*model.TaBodyCheck, error) {
43
+	var check []model.TaBodyCheck
44
+	err := m.db.Where("user_id=?", userID).And("equipment_id=?", EquipmentID).And("status=?", 1).Desc("create_date").Find(&check)
45
+	if err != nil {
46
+		return nil, err
47
+	}
48
+	if len(check) > 0 {
49
+		return &check[0], nil
50
+	}
51
+	return nil, nil
52
+}
53
+
54
+// SaveBodyCheckInfo 用户体检信息新增
55
+func (m *DAO) SaveBodyCheckInfo(checkNew model.TaBodyCheck) (*model.TaBodyCheck, error) {
56
+	checkNew.Status = 1
57
+	// checkNew.CreateDate = time.Now()
58
+	_, err := m.db.Insert(&checkNew)
59
+	return &checkNew, err
60
+}
61
+
62
+// SaveUser 新增用户信息
63
+func (m *DAO) SaveUser(user model.TaCustomer) (*model.TaCustomer, error) {
64
+	user.CreateDate = time.Now()
65
+	_, err := m.db.Insert(&user)
66
+	return &user, err
67
+}
68
+
69
+// GetCaseEquipment 获取设备案场信息
70
+func (m *DAO) GetCaseEquipment(EquipmentID string) (*model.TaCaseEquipment, error) {
71
+	var caseEquipment model.TaCaseEquipment
72
+
73
+	_, err := m.db.Where("equipment_id=?", EquipmentID).And("status=?", 1).Get(&caseEquipment)
74
+	return &caseEquipment, err
75
+}
76
+
77
+// GetUserByOpenID 根据openid获取用户信息
78
+func (m *DAO) GetUserByOpenID(openid string) (*model.TaCustomer, error) {
79
+	var user model.TaCustomer
80
+	_, err := m.db.Where("open_id=?", openid).Get(&user)
81
+	return &user, err
82
+}
83
+
84
+// GetCustomerByID 根据客户ID 获取用户信息
85
+func (m *DAO) GetCustomerByID(id int) (*model.TaCustomer, error) {
86
+	var cust model.TaCustomer
87
+	_, err := m.db.Where("id=?", id).Get(&cust)
88
+	return &cust, err
89
+}
90
+
91
+type Presentation struct {
92
+	model.TaPresentation `xorm:"extends"`
93
+	TypeName             string
94
+	Details              []model.TaPresentationDetail
95
+}
96
+
97
+// GetPresentationByCheckID 根据体检ID获取项目信息
98
+func (m *DAO) GetPresentationByCheckID(checkID int) ([]Presentation, error) {
99
+	var presentations []Presentation
100
+	sql := `select a.*,b.type_name from ta_presentation a inner join td_check_type b on a.check_type=b.id where a.check_id=` + strconv.Itoa(checkID)
101
+
102
+	err := m.db.Sql(sql).Find(&presentations)
103
+	if err != nil {
104
+		return nil, err
105
+	}
106
+	var Info []Presentation
107
+	for _, presentation := range presentations {
108
+		details, err := m.GetDetailsByPresentID(presentation.Id)
109
+		if err != nil {
110
+			return nil, err
111
+		}
112
+		presentation.Details = details
113
+		Info = append(Info, presentation)
114
+	}
115
+
116
+	return Info, nil
117
+}
118
+
119
+// GetDetailsByPresentID 根据项目ID获取详情
120
+func (m *DAO) GetDetailsByPresentID(ID int) ([]model.TaPresentationDetail, error) {
121
+	var details []model.TaPresentationDetail
122
+	err := m.db.Where("presentation_id=?", ID).Find(&details)
123
+	return details, err
124
+}
125
+
126
+// GetPresentation 获取体检项目信息
127
+func (m *DAO) GetPresentation(checkID, typeID int) (*model.TaPresentation, error) {
128
+	var presentation model.TaPresentation
129
+	_, err := m.db.Where("check_id=?", checkID).And("check_type=?", typeID).Get(&presentation)
130
+	return &presentation, err
131
+}
132
+
133
+// SavePresentation 新增体检项目信息
134
+func (m *DAO) SavePresentation(info model.TaPresentation) (*model.TaPresentation, error) {
135
+	_, err := m.db.Insert(&info)
136
+	return &info, err
137
+}
138
+
139
+// UpdatePresentation 更新体检项目信息
140
+func (m *DAO) UpdatePresentation(info *model.TaPresentation) error {
141
+	cols := []string{
142
+		"check_date",
143
+		"check_result",
144
+		"report_url",
145
+	}
146
+	_, err := m.db.Update(info, cols, "id=?", info.Id)
147
+	return err
148
+}
149
+
150
+// SavePresentationDetail 保存体检项目明细
151
+func (m *DAO) SavePresentationDetail(details []model.TaPresentationDetail) error {
152
+	_, err := m.db.Insert(&details)
153
+	return err
154
+}
155
+
156
+// DeletePresentionDetail 根据项目ID删除明细信息
157
+func (m *DAO) DeletePresentionDetail(ID int) error {
158
+	sql := "delete from ta_presentation_detail where presentation_id=" + strconv.Itoa(ID)
159
+	_, err := m.db.Exec(sql)
160
+	return err
161
+}

+ 1
- 0
routers/common.go Zobrazit soubor

@@ -179,6 +179,7 @@ func getCommonRoutes() beego.LinkNamespace {
179 179
 		beego.NSRouter("/gymcard", &gymcard.GymcardController{}, "post:SaveGymcard"),
180 180
 		beego.NSRouter("/gymcard", &gymcard.GymcardController{}, "put:SaveGymcard"),
181 181
 		beego.NSRouter("/gymcard/:customerGymId", &gymcard.GymcardController{}, "put:VerifyCustomerGymcard"),
182
+		beego.NSRouter("/gymcard/:gymcardId/:customerId", &gymcard.GymcardController{}, "post:VerifyCustomerGymcard"),
182 183
 		// luckdrawlist 抽奖
183 184
 		beego.NSRouter("luckdrawlist", &luckdrawlist.LuckdrawlistController{}, "get:GetLuckdrawList"),
184 185
 		beego.NSRouter("luckdrawlist/:toPhone/:fromPhone", &luckdrawlist.LuckdrawlistController{}, "get:GetLuckShareList"),

+ 132
- 0
service/bodycheck/bodycheck.go Zobrazit soubor

@@ -0,0 +1,132 @@
1
+package bodycheck
2
+
3
+import (
4
+	"errors"
5
+	"spaceofcheng/services/models/bodycheck"
6
+	"spaceofcheng/services/models/model"
7
+	"spaceofcheng/services/utils"
8
+)
9
+
10
+// BodycheckServ 系统处理
11
+type BodycheckServ struct {
12
+	ctx *utils.Context
13
+	dao *bodycheck.DAO
14
+}
15
+
16
+// NewBodycheckServ 初始化
17
+func NewBodycheckServ(ctx *utils.Context) *BodycheckServ {
18
+	return &BodycheckServ{
19
+		ctx: ctx,
20
+		dao: bodycheck.NewDAO(ctx),
21
+	}
22
+}
23
+func (s *BodycheckServ) GetBodyCheckByUser(userID int) ([]model.TaBodyCheck, error) {
24
+	bodychecks, err := s.dao.GetBodyCheckByUser(userID)
25
+	if err != nil {
26
+		utils.LogError("查询用户体检信息失败: " + err.Error())
27
+		return nil, errors.New("查询用户体检信息失败")
28
+	}
29
+	return bodychecks, nil
30
+}
31
+func (s *BodycheckServ) GetCheckSpecs() ([]model.TdCheckSpec, error) {
32
+	specs, err := s.dao.GetCheckSpecs()
33
+	if err != nil {
34
+		utils.LogError("获取项目指标信息失败: " + err.Error())
35
+		return nil, errors.New("获取项目指标信息失败")
36
+	}
37
+	return specs, nil
38
+}
39
+func (s *BodycheckServ) GetCheckByUserAndEquipmentID(userID int, EquipmentID string) (*model.TaBodyCheck, error) {
40
+	check, err := s.dao.GetCheckByUserAndEquipmentID(userID, EquipmentID)
41
+	if err != nil {
42
+		utils.LogError("根据用户与设备ID获取体检信息失败: " + err.Error())
43
+		return nil, errors.New("根据用户与设备ID获取体检信息失败")
44
+	}
45
+	return check, nil
46
+}
47
+func (s *BodycheckServ) SaveBodyCheckInfo(checkNew model.TaBodyCheck) (*model.TaBodyCheck, error) {
48
+	checkNews, err := s.dao.SaveBodyCheckInfo(checkNew)
49
+	if err != nil {
50
+		utils.LogError("用户体检信息新增失败: " + err.Error())
51
+		return nil, errors.New("用户体检信息新增失败")
52
+	}
53
+	return checkNews, nil
54
+}
55
+func (s *BodycheckServ) GetCaseEquipment(EquipmentID string) (*model.TaCaseEquipment, error) {
56
+	caseEquipment, err := s.dao.GetCaseEquipment(EquipmentID)
57
+	if err != nil {
58
+		utils.LogError("获取设备案场信息失败: " + err.Error())
59
+		return nil, errors.New("获取设备案场信息失败")
60
+	}
61
+	return caseEquipment, nil
62
+}
63
+func (s *BodycheckServ) GetUserByOpenID(openid string) (*model.TaCustomer, error) {
64
+	customer, err := s.dao.GetUserByOpenID(openid)
65
+	if err != nil {
66
+		utils.LogError("根据openid获取用户信息失败: " + err.Error())
67
+		return nil, errors.New("根据openid获取用户信息失败")
68
+	}
69
+	return customer, nil
70
+}
71
+
72
+func (s *BodycheckServ) GetPresentationByCheckID(checkID int) ([]bodycheck.Presentation, error) {
73
+	presentations, err := s.dao.GetPresentationByCheckID(checkID)
74
+	if err != nil {
75
+		utils.LogError("根据体检ID获取项目信息失败: " + err.Error())
76
+		return nil, errors.New("根据体检ID获取项目信息失败")
77
+	}
78
+	return presentations, nil
79
+}
80
+
81
+func (s *BodycheckServ) GetDetailsByPresentID(ID int) ([]model.TaPresentationDetail, error) {
82
+	detail, err := s.dao.GetDetailsByPresentID(ID)
83
+	if err != nil {
84
+		utils.LogError("根据项目ID获取详情失败: " + err.Error())
85
+		return nil, errors.New("根据项目ID获取详情失败")
86
+	}
87
+	return detail, nil
88
+}
89
+
90
+func (s *BodycheckServ) GetPresentation(checkID, typeID int) (*model.TaPresentation, error) {
91
+	presentation, err := s.dao.GetPresentation(checkID, typeID)
92
+	if err != nil {
93
+		utils.LogError("获取体检项目信息失败: " + err.Error())
94
+		return nil, errors.New("获取体检项目信息失败")
95
+	}
96
+	return presentation, nil
97
+}
98
+
99
+func (s *BodycheckServ) SavePresentation(info model.TaPresentation) (*model.TaPresentation, error) {
100
+	presentation, err := s.dao.SavePresentation(info)
101
+	if err != nil {
102
+		utils.LogError("新增体检项目信息失败: " + err.Error())
103
+		return nil, errors.New("新增体检项目信息失败")
104
+	}
105
+	return presentation, err
106
+}
107
+func (s *BodycheckServ) UpdatePresentation(info *model.TaPresentation) error {
108
+	err := s.dao.UpdatePresentation(info)
109
+	if err != nil {
110
+		utils.LogError("更新体检项目信息失败: " + err.Error())
111
+		return errors.New("更新体检项目信息失败")
112
+	}
113
+	return nil
114
+}
115
+
116
+func (s *BodycheckServ) SavePresentationDetail(details []model.TaPresentationDetail) error {
117
+	err := s.dao.SavePresentationDetail(details)
118
+	if err != nil {
119
+		utils.LogError("保存体检项目明细失败: " + err.Error())
120
+		return errors.New("保存体检项目明细失败")
121
+	}
122
+	return nil
123
+
124
+}
125
+func (s *BodycheckServ) DeletePresentionDetail(ID int) error {
126
+	err := s.dao.DeletePresentionDetail(ID)
127
+	if err != nil {
128
+		utils.LogError("根据项目ID删除明细信息失败: " + err.Error())
129
+		return errors.New("根据项目ID删除明细信息失败")
130
+	}
131
+	return nil
132
+}

+ 29
- 0
service/gymcard/gymcard.go Zobrazit soubor

@@ -192,6 +192,35 @@ func (s *GymcardServ) SendGymCardToUser(gymcardId, sysuserId string) (*model.TaC
192 192
 	return customerGym, nil
193 193
 }
194 194
 
195
+// SendGymCardToUser 后台给客户发卡
196
+func (s *GymcardServ) BackSendGymCardToUser(gymcardId, sysuserId, customerId string) (*model.TaCustomerGym, error) {
197
+	var customerGym *model.TaCustomerGym
198
+	var sysuser *model.SysUser
199
+	gymCard, err := s.dao.GetGymcardById(gymcardId)
200
+	if err != nil {
201
+		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
202
+		return nil, errors.New("发送游泳健身卡给客户失败")
203
+	}
204
+	sysuser, err = s.cdao.GetUserByID(sysuserId)
205
+	if err != nil {
206
+		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
207
+		return nil, errors.New("发送游泳健身卡给客户失败")
208
+	}
209
+	gymCard.SentCount = gymCard.SentCount + 1
210
+	customerGym, err = s.dao.SendGymcardToCustomer(&gymCard.TaGymCard, customerId, sysuserId, sysuser.RealName)
211
+	if err != nil {
212
+		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
213
+		return nil, errors.New("发送游泳健身卡给客户失败")
214
+	}
215
+
216
+	err = s.dao.EditGymcard(&gymCard.TaGymCard)
217
+	if err != nil {
218
+		utils.LogError("发送游泳健身卡给客户失败" + err.Error())
219
+		return nil, errors.New("发送游泳健身卡给客户失败")
220
+	}
221
+	return customerGym, nil
222
+}
223
+
195 224
 // UpdateCustomerGym 核销游泳健身卡
196 225
 func (s *GymcardServ) UpdateCustomerGym(customerGymId, caseid string) error {
197 226
 	var gymCard *gymcard.Gymcard