瀏覽代碼

keybindverify

胡轶钦 6 年之前
父節點
當前提交
41481574de
共有 5 個檔案被更改,包括 61 行新增17 行删除
  1. 12
    1
      controllers/cases/key.go
  2. 13
    7
      models/cases/key.go
  3. 2
    1
      routers/common.go
  4. 34
    4
      service/cases/key.go
  5. 0
    4
      service/message/image.go

+ 12
- 1
controllers/cases/key.go 查看文件

1
 package cases
1
 package cases
2
 
2
 
3
-import "spaceofcheng/services/models/model"
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+)
4
 
6
 
5
 // GetKeyList 获取钥匙列表
7
 // GetKeyList 获取钥匙列表
6
 func (c *CaseController) GetKeyList() {
8
 func (c *CaseController) GetKeyList() {
68
 		c.ResponseError(err)
70
 		c.ResponseError(err)
69
 	}
71
 	}
70
 	c.ResponseJSON("绑定成功!")
72
 	c.ResponseJSON("绑定成功!")
73
+}
74
+func (c *CaseController) LockKeyVerify() {
75
+	customerId := c.GetString("customerid")
76
+	keyId := c.GetString(":keyid")
77
+	err := c.dao.LockKeyVerify(keyId, customerId)
78
+	if err != nil {
79
+		c.ResponseError(err)
80
+	}
81
+	c.ResponseJSON("绑定成功!")
71
 
82
 
72
 }
83
 }
73
 
84
 

+ 13
- 7
models/cases/key.go 查看文件

31
 			s.customer_name
31
 			s.customer_name
32
 		FROM
32
 		FROM
33
 			ta_case_key t
33
 			ta_case_key t
34
-		LEFT JOIN ta_case_key_use s ON t.key_id = s.key_id AND s.status != ?
34
+		LEFT JOIN ta_case_key_use s ON t.key_id = s.key_id AND s.return_date IS NULL 
35
 		WHERE
35
 		WHERE
36
 			t.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')
36
 			t.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')
37
-		AND t.status > ?
37
+			AND t.STATUS > ?
38
 	`
38
 	`
39
 
39
 
40
 	if num != "" {
40
 	if num != "" {
43
 
43
 
44
 	offset := (page - 1) * pageSize
44
 	offset := (page - 1) * pageSize
45
 	query += " order by lock_no asc LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa(offset)
45
 	query += " order by lock_no asc LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa(offset)
46
-
47
-	err := m.db.SQL(query, models.STATUS_NORMAL, models.STATUS_DEL).Find(&keys)
46
+	beego.Error(query)
47
+	err := m.db.SQL(query, models.STATUS_DEL).Find(&keys)
48
 	return keys, err
48
 	return keys, err
49
 }
49
 }
50
 
50
 
160
 	err := m.db.Sql(sql).Find(&keys)
160
 	err := m.db.Sql(sql).Find(&keys)
161
 	return keys, err
161
 	return keys, err
162
 }
162
 }
163
+
164
+// CustomerIsBind 用户是否已经绑定钥匙
163
 func (m *CaseDAO) CustomerIsBind(customerid string) (int, error) {
165
 func (m *CaseDAO) CustomerIsBind(customerid string) (int, error) {
164
 	var count []model.TaCaseKey
166
 	var count []model.TaCaseKey
165
 	sql := `SELECT
167
 	sql := `SELECT
169
 	ta_case_key a
171
 	ta_case_key a
170
 	INNER JOIN ta_case_key_use b ON a.key_id = b.key_id 
172
 	INNER JOIN ta_case_key_use b ON a.key_id = b.key_id 
171
 WHERE
173
 WHERE
172
-	b.customer_id =?
174
+	b.customer_id = '` + customerid + `'
173
 	and b.return_date is null`
175
 	and b.return_date is null`
174
-	err := m.db.Sql(sql, customerid).Find(&count)
175
-	return len(count), err
176
+	beego.Error(sql)
177
+	err := m.db.Sql(sql).Find(&count)
178
+	if len(count) > 0 {
179
+		return len(count), err
180
+	}
181
+	return 0, err
176
 }
182
 }

+ 2
- 1
routers/common.go 查看文件

137
 
137
 
138
 		// casekey 案场钥匙
138
 		// casekey 案场钥匙
139
 		beego.NSRouter("/case/key", &cases.CaseController{}, "get:GetKeyList"),
139
 		beego.NSRouter("/case/key", &cases.CaseController{}, "get:GetKeyList"),
140
-		beego.NSRouter("/case/key/:phone/:keyid", &cases.CaseController{}, "get:GetKeyList"),
140
+		beego.NSRouter("/case/key/:phone/:keyid", &cases.CaseController{}, "post:LockKeyByPhone"),
141
+		beego.NSRouter("/verify/case/key/:keyid/:customerid", &cases.CaseController{}, "post:LockKeyVerify"),
141
 		beego.NSRouter("/case/key", &cases.CaseController{}, "post:AddKeys"),
142
 		beego.NSRouter("/case/key", &cases.CaseController{}, "post:AddKeys"),
142
 		beego.NSRouter("/case/key/:keyid/:customerid/:customername", &cases.CaseController{}, "post:LockKey"),
143
 		beego.NSRouter("/case/key/:keyid/:customerid/:customername", &cases.CaseController{}, "post:LockKey"),
143
 		beego.NSRouter("/case/unlock/:keyid", &cases.CaseController{}, "put:UnLockKey"),
144
 		beego.NSRouter("/case/unlock/:keyid", &cases.CaseController{}, "put:UnLockKey"),

+ 34
- 4
service/cases/key.go 查看文件

83
 
83
 
84
 // LockKeyByPhone 根据手机号绑定钥匙
84
 // LockKeyByPhone 根据手机号绑定钥匙
85
 func (s *CaseServ) LockKeyByPhone(phone, keyId string) error {
85
 func (s *CaseServ) LockKeyByPhone(phone, keyId string) error {
86
-	var count int = 0
87
 	customer, err := s.customerdao.GetCustomerByPhone(phone)
86
 	customer, err := s.customerdao.GetCustomerByPhone(phone)
88
 	if err != nil {
87
 	if err != nil {
89
 		utils.LogError("根据手机号绑定钥匙失败: " + err.Error())
88
 		utils.LogError("根据手机号绑定钥匙失败: " + err.Error())
90
 		return errors.New("根据手机号绑定钥匙失败")
89
 		return errors.New("根据手机号绑定钥匙失败")
91
 	}
90
 	}
92
-	count, err = s.dao.CustomerIsBind(customer.CustomerId)
93
-	if err != nil {
94
-		utils.LogError("绑定钥匙失败: " + err.Error())
91
+	if customer == nil {
92
+		return errors.New("非注册用户不可绑定")
93
+	}
94
+	count, err1 := s.dao.CustomerIsBind(customer.CustomerId)
95
+	if err1 != nil {
96
+		utils.LogError("绑定钥匙失败: " + err1.Error())
95
 		return errors.New("绑定钥匙失败")
97
 		return errors.New("绑定钥匙失败")
96
 	}
98
 	}
97
 	if count > 0 {
99
 	if count > 0 {
149
 	return nil
151
 	return nil
150
 }
152
 }
151
 
153
 
154
+func (s *CaseServ) LockKeyVerify(keyId, customerId string) error {
155
+	customer, err := s.customerdao.GetCustomerByID(customerId)
156
+	if err != nil {
157
+		utils.LogError("绑定钥匙失败: " + err.Error())
158
+		return errors.New("绑定钥匙失败")
159
+	}
160
+	count, err := s.dao.CustomerIsBind(customerId)
161
+	if err != nil {
162
+		utils.LogError("绑定钥匙失败: " + err.Error())
163
+		return errors.New("绑定钥匙失败")
164
+	}
165
+	if count > 0 {
166
+		return errors.New("用户已绑定钥匙,不可重复绑定")
167
+	}
168
+	err = s.dao.BindKeyToUser(keyId, customerId, customer.CustomerName)
169
+	if err != nil {
170
+		utils.LogError("绑定钥匙失败: " + err.Error())
171
+		return errors.New("绑定钥匙失败")
172
+	}
173
+	err = s.dao.UpdateKeyState(keyId, 1)
174
+	if err != nil {
175
+		utils.LogError("绑定钥匙失败: " + err.Error())
176
+		return errors.New("绑定钥匙失败")
177
+	}
178
+	return nil
179
+
180
+}
181
+
152
 // DelKey 刪除
182
 // DelKey 刪除
153
 func (s *CaseServ) DelKey(keyid string) error {
183
 func (s *CaseServ) DelKey(keyid string) error {
154
 	use, err := s.dao.GetCurrentKey(keyid)
184
 	use, err := s.dao.GetCurrentKey(keyid)

+ 0
- 4
service/message/image.go 查看文件

71
 	if imginfo.ForwardType == ForwardTypeUrl && imginfo.ForwardUrl == "" {
71
 	if imginfo.ForwardType == ForwardTypeUrl && imginfo.ForwardUrl == "" {
72
 		return nil, errors.New("跳转地址不允许为空!")
72
 		return nil, errors.New("跳转地址不允许为空!")
73
 	}
73
 	}
74
-<<<<<<< HEAD
75
-	if imginfo.ForwardType == ForwardTypeCourse && imginfo.CaseId == "" {
76
-=======
77
 
74
 
78
 	if imginfo.ForwardType == ForwardTypeCourse && imginfo.ForwardResourceId == "" {
75
 	if imginfo.ForwardType == ForwardTypeCourse && imginfo.ForwardResourceId == "" {
79
->>>>>>> 25b458f1a666b753f4338f1649fcaeaa37b61fd4
80
 		return nil, errors.New("跳转资源不允许为空!")
76
 		return nil, errors.New("跳转资源不允许为空!")
81
 	}
77
 	}
82
 
78