|
@@ -235,34 +235,59 @@ public class HomeHandler {
|
|
|
|
|
|
Member m = WechatUtils.getUserBySession(request);
|
|
|
m = memberService.getMemberByUserOpenId(m.getUserOpenid());
|
|
|
+ Integer userStatus = m.getUserStatus(); //关注状态 1:未关注,默认 2:已关注 0:已取消关注
|
|
|
try{
|
|
|
- JSONObject jsonObject = WeixinUtil.getUserInfo(m.getUserOpenid());
|
|
|
+ JSONObject jsonObject = WeixinUtil.getUserInfo(m.getUserOpenid()); //subscribe
|
|
|
assert jsonObject != null;
|
|
|
- assert jsonObject.has("nickname");
|
|
|
- String nickname = jsonObject.getString("nickname");
|
|
|
- String headimgurl = jsonObject.getString("headimgurl");
|
|
|
-
|
|
|
- Member mem = new Member();
|
|
|
- mem.setUserHead(headimgurl);
|
|
|
- mem.setUserNickname(nickname);
|
|
|
- mem.setUserOpenid(m.getUserOpenid());
|
|
|
- if(m.getUserStatus() == 2){
|
|
|
- memberService.nowUpdateUserByOpenId(mem);
|
|
|
+ if(jsonObject.has("nickname")){
|
|
|
+ String nickname = jsonObject.getString("nickname");
|
|
|
+ String headimgurl = jsonObject.getString("headimgurl");
|
|
|
+ Integer sex = jsonObject.getInt("sex");
|
|
|
+ String city = jsonObject.getString("city");
|
|
|
+ String country = jsonObject.getString("country");
|
|
|
+ String province = jsonObject.getString("province");
|
|
|
+ Member mem = new Member();
|
|
|
+ mem.setUserHead(headimgurl);
|
|
|
+ mem.setUserNickname(nickname);
|
|
|
+ mem.setUserOpenid(m.getUserOpenid());
|
|
|
+ if(m.getUserStatus() == 2){
|
|
|
+ memberService.nowUpdateUserByOpenId(mem);
|
|
|
+ }else{
|
|
|
+ userStatus = 2; //已关注
|
|
|
+ if(nickname != null && !"".equals(nickname)){
|
|
|
+ mem.setUserStatus(2);
|
|
|
+ }
|
|
|
+ mem.setUserSex(sex);
|
|
|
+ mem.setUserAddr(country+"-"+province+"-"+city);
|
|
|
+ homeService.updateWechatMemberInfoByByOpenid(mem);
|
|
|
+ }
|
|
|
+ logger.info("获取个人信息成功;openid:"+m.getUserOpenid());
|
|
|
}else{
|
|
|
- if(nickname != null && !"".equals(nickname)){
|
|
|
- mem.setUserStatus(2);
|
|
|
+ if(jsonObject.has("subscribe")){
|
|
|
+ Integer subscribe = jsonObject.getInt("subscribe");
|
|
|
+ if(subscribe == 0 && m.getUserStatus() == 2){ //已经取消关注了
|
|
|
+ //修改成未关注
|
|
|
+ userStatus = 0;
|
|
|
+ Member mem = new Member();
|
|
|
+ mem.setUserOpenid(m.getUserOpenid());
|
|
|
+ mem.setUserStatus(0);
|
|
|
+ memberService.nowUpdateUserByOpenId(mem);
|
|
|
+ }
|
|
|
}
|
|
|
- homeService.updateWechatMemberInfoByByOpenid(mem);
|
|
|
}
|
|
|
- logger.info("获取个人信息成功;openid:"+m.getUserOpenid());
|
|
|
}catch (Exception e){
|
|
|
logger.info("获取个人信息失败;openid:"+m.getUserOpenid());
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("userStatus",userStatus);
|
|
|
+ map.put("openId",m.getUserOpenid());
|
|
|
+
|
|
|
msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
|
|
|
msg.setResultCode(ResultInfo.SUCCESSCODE);
|
|
|
msg.setStatus(true);
|
|
|
+ msg.setData(map);
|
|
|
return msg;
|
|
|
}
|
|
|
|