ソースを参照

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,6 +1,8 @@
1 1
 package cases
2 2
 
3
-import "spaceofcheng/services/models/model"
3
+import (
4
+	"spaceofcheng/services/models/model"
5
+)
4 6
 
5 7
 // GetKeyList 获取钥匙列表
6 8
 func (c *CaseController) GetKeyList() {
@@ -68,6 +70,15 @@ func (c *CaseController) LockKeyByPhone() {
68 70
 		c.ResponseError(err)
69 71
 	}
70 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,10 +31,10 @@ func (m *CaseDAO) GetKeysByCase(caseids, num string, page, pageSize int) ([]Case
31 31
 			s.customer_name
32 32
 		FROM
33 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 35
 		WHERE
36 36
 			t.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')
37
-		AND t.status > ?
37
+			AND t.STATUS > ?
38 38
 	`
39 39
 
40 40
 	if num != "" {
@@ -43,8 +43,8 @@ func (m *CaseDAO) GetKeysByCase(caseids, num string, page, pageSize int) ([]Case
43 43
 
44 44
 	offset := (page - 1) * pageSize
45 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 48
 	return keys, err
49 49
 }
50 50
 
@@ -160,6 +160,8 @@ func (m *CaseDAO) GetKeyByNum(caseid string, beginnum, endnum int) ([]model.TaCa
160 160
 	err := m.db.Sql(sql).Find(&keys)
161 161
 	return keys, err
162 162
 }
163
+
164
+// CustomerIsBind 用户是否已经绑定钥匙
163 165
 func (m *CaseDAO) CustomerIsBind(customerid string) (int, error) {
164 166
 	var count []model.TaCaseKey
165 167
 	sql := `SELECT
@@ -169,8 +171,12 @@ FROM
169 171
 	ta_case_key a
170 172
 	INNER JOIN ta_case_key_use b ON a.key_id = b.key_id 
171 173
 WHERE
172
-	b.customer_id =?
174
+	b.customer_id = '` + customerid + `'
173 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,7 +137,8 @@ func getCommonRoutes() beego.LinkNamespace {
137 137
 
138 138
 		// casekey 案场钥匙
139 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 142
 		beego.NSRouter("/case/key", &cases.CaseController{}, "post:AddKeys"),
142 143
 		beego.NSRouter("/case/key/:keyid/:customerid/:customername", &cases.CaseController{}, "post:LockKey"),
143 144
 		beego.NSRouter("/case/unlock/:keyid", &cases.CaseController{}, "put:UnLockKey"),

+ 34
- 4
service/cases/key.go ファイルの表示

@@ -83,15 +83,17 @@ func (s *CaseServ) AddKeys(orgid, caseid string, beginnum, endnum int) error {
83 83
 
84 84
 // LockKeyByPhone 根据手机号绑定钥匙
85 85
 func (s *CaseServ) LockKeyByPhone(phone, keyId string) error {
86
-	var count int = 0
87 86
 	customer, err := s.customerdao.GetCustomerByPhone(phone)
88 87
 	if err != nil {
89 88
 		utils.LogError("根据手机号绑定钥匙失败: " + err.Error())
90 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 97
 		return errors.New("绑定钥匙失败")
96 98
 	}
97 99
 	if count > 0 {
@@ -149,6 +151,34 @@ func (s *CaseServ) LockKey(keyId, customerId, customerName string) error {
149 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 182
 // DelKey 刪除
153 183
 func (s *CaseServ) DelKey(keyid string) error {
154 184
 	use, err := s.dao.GetCurrentKey(keyid)

+ 0
- 4
service/message/image.go ファイルの表示

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