Bladeren bron

修复微信bug

wangfei 6 jaren geleden
bovenliggende
commit
06aa9321b3
2 gewijzigde bestanden met toevoegingen van 52 en 12 verwijderingen
  1. 28
    2
      controllers/wechat.go
  2. 24
    10
      service/customer/customer.go

+ 28
- 2
controllers/wechat.go Bestand weergeven

@@ -121,13 +121,39 @@ func (c *WechatController) checkUser(val map[string]string) (map[string]interfac
121 121
 		return user, nil
122 122
 	}
123 123
 
124
-	if getUser == nil || getUser.CustomerId == "" {
124
+	// if getUser == nil || getUser.CustomerId == "" {
125
+	// 	// 新增用户
126
+	// 	_, err := c.custServ.SaveNewCustomer(user, "", "", "", "")
127
+	// 	if err != nil {
128
+	// 		utils.LogError("用户保存失败:", err)
129
+	// 		return user, nil
130
+	// 	}
131
+	// }
132
+
133
+	if getUser == nil || getUser.MappingId == "" {
125 134
 		// 新增用户
126
-		_, err := c.custServ.SaveNewCustomer(user, "", "", "", "")
135
+		newuser, err := c.custServ.SaveNewCustomer(user, "", "", "", "")
127 136
 		if err != nil {
128 137
 			utils.LogError("用户保存失败:", err)
129 138
 			return user, nil
130 139
 		}
140
+		accountInfo, err := json.Marshal(user)
141
+		if err != nil {
142
+			utils.LogError("转换失败", err)
143
+			return user, nil
144
+		}
145
+		userMapping := model.TaUserMapping{
146
+			UserId:      newuser.CustomerId,
147
+			AccountType: models.ACCMAP_WECHAT,
148
+			Openid:      openID,
149
+			AccountInfo: string(accountInfo),
150
+		}
151
+		_, err = c.custServ.EditUserMapping(&userMapping)
152
+		if err != nil {
153
+			utils.LogError("保存用户映射信息失败: " + err.Error())
154
+			return user, err
155
+		}
156
+
131 157
 	}
132 158
 
133 159
 	return user, nil

+ 24
- 10
service/customer/customer.go Bestand weergeven

@@ -198,11 +198,10 @@ func (s *CustomerServ) BindWechatCust(userMap *model.TaUserMapping, phone, recom
198 198
 		return nil, utils.LogError("获取用户信息失败", err.Error())
199 199
 	}
200 200
 
201
-	newCust := model.TaCustomer{
202
-		CustomerId:  customer.CustomerId,
203
-		Phone:       phone,
204
-		BindingDate: time.Now(),
205
-	}
201
+	newCust := customer.TaCustomer
202
+	newCust.Phone = phone
203
+	newCust.BindingDate = time.Now().Local()
204
+
206 205
 	// 校验案场信息
207 206
 	if recommendCode != "" {
208 207
 		user, err := s.dao.GetSalesByRecommendCode(recommendCode)
@@ -269,8 +268,9 @@ func (s *CustomerServ) BindWechatCust(userMap *model.TaUserMapping, phone, recom
269 268
 
270 269
 	// triggerRegiteEvent 触发注册事件
271 270
 	// if cust.RecommendCase != "" {
272
-	evtEngID := utils.EngineIDBy(cust.OrgId, "")
273
-	utils.EventEngineBus(evtEngID).EmitEvent(events.EvtRegiste, *cust)
271
+	evtEngID := utils.EngineIDBy(customer.OrgId, "")
272
+	evtEngine := utils.EventEngineBus(evtEngID)
273
+	evtEngine.EmitEvent(events.EvtRegiste, *cust)
274 274
 	// }
275 275
 
276 276
 	// 如果客户ID 与映射表中一致, 说明已经绑定过了
@@ -296,13 +296,21 @@ func (s *CustomerServ) SaveNewCustomer(wxInfo map[string]interface{}, caseID, ar
296 296
 
297 297
 	// 微信相关字段
298 298
 	nickyName := wxInfo["nickname"].(string)
299
-	sex := wxInfo["sex"].(string)
300
-	headimgurl := wxInfo["headimgurl"].(string)
301 299
 
302
-	sexInt, _ := strconv.Atoi(sex)
300
+	// sex := wxInfo["sex"].(string)
301
+	var sexInt int
302
+	switch val := wxInfo["sex"].(type) {
303
+	case string:
304
+		sexInt, _ = strconv.Atoi(val)
305
+	case float64:
306
+		sexInt = int(val)
307
+	default:
308
+		sexInt = 1
309
+	}
303 310
 	if sexInt == 0 {
304 311
 		sexInt = 1 // 默认男性
305 312
 	}
313
+	headimgurl := wxInfo["headimgurl"].(string)
306 314
 
307 315
 	org := s.ctx.Get("org").(model.SysOrg)
308 316
 
@@ -419,3 +427,9 @@ func (s *CustomerServ) GetCustomerInfo() (map[string]interface{}, error) {
419 427
 		"vipbalance": balance,
420 428
 	}, nil
421 429
 }
430
+
431
+// EditUserMapping 更新用户map信息
432
+func (s *CustomerServ) EditUserMapping(userMap *model.TaUserMapping) (*model.TaUserMapping, error) {
433
+	err := models.EditUserMapping(userMap)
434
+	return userMap, err
435
+}