From 3098d172fbe3fcbef5988de447375ccbd48ae33a Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Mon, 10 Aug 2020 21:52:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=9F=AD=E4=BF=A1=E4=BF=AE=E6=94=B9=202.reco?= =?UTF-8?q?rd=20=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bsd/say/controller/WechatController.java | 32 +++++++++++++ .../say/service/impl/CouponServiceImpl.java | 2 +- .../say/service/impl/RecordServiceImpl.java | 47 +++++++------------ 3 files changed, 50 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/bsd/say/controller/WechatController.java b/src/main/java/com/bsd/say/controller/WechatController.java index 060d081..5f1e818 100644 --- a/src/main/java/com/bsd/say/controller/WechatController.java +++ b/src/main/java/com/bsd/say/controller/WechatController.java @@ -2,7 +2,11 @@ package com.bsd.say.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.api.R; import com.bsd.say.beans.AjaxResult; +import com.bsd.say.entities.Record; +import com.bsd.say.mapper.RecordMapper; import com.bsd.say.service.WxOpenServiceDemo; import com.bsd.say.service.impl.WeixinService; import com.bsd.say.util.AESWithJCEUtils; @@ -24,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.util.Date; @RestController @RequestMapping("wechat") @@ -45,6 +50,8 @@ public class WechatController { Logger logger = LogUtils.getBussinessLogger(); @Autowired private WeixinService weixinService; + @Resource + private RecordMapper recordMapper; /** * 接收component_verify_ticket 或 authorized事件 @@ -143,6 +150,31 @@ public class WechatController { String decode = AESWithJCEUtils.aesDecode(result3, pubkey, iv); String resutl = HttpRequestUtils.sendGet("https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + decode + "&openid=" + openId + "&lang=zh_CN"); JSONObject jsonObject = JSONObject.parseObject(resutl); + int subscribe = jsonObject.getInteger("subscribe"); + Record recordByOpenId = recordMapper.selectOne(Wrappers.lambdaQuery().eq(Record::getOpenId,openId) + .and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1))); + if (subscribe == 0){ + //未关注公众号 + if (recordByOpenId == null){ + Record record = new Record(); + record.setOpenId(openId); + record.setFan("新粉丝"); + record.setCreateDateTime(new Date()); + recordMapper.insert(record); + }else { + logger.info("游客访问过,但未关注"); + } + }else { + //关注过公众号 + if (recordByOpenId == null){ + Record record = new Record(); + record.setOpenId(openId); + record.setFan("老粉丝"); + record.setCreateDateTime(new Date()); + }else { + logger.info("老粉丝访问过,已关注"); + } + } AjaxResult ajaxResult = new AjaxResult(); ajaxResult.setData(jsonObject); return ajaxResult; diff --git a/src/main/java/com/bsd/say/service/impl/CouponServiceImpl.java b/src/main/java/com/bsd/say/service/impl/CouponServiceImpl.java index d209de1..a58a69a 100644 --- a/src/main/java/com/bsd/say/service/impl/CouponServiceImpl.java +++ b/src/main/java/com/bsd/say/service/impl/CouponServiceImpl.java @@ -303,7 +303,7 @@ public class CouponServiceImpl extends BaseServiceImpl imp } }else { ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setRetmsg("ERROR NOTECODE"); + ajaxResult.setRetmsg("验证码错误请重新填写"); } return ajaxResult; } diff --git a/src/main/java/com/bsd/say/service/impl/RecordServiceImpl.java b/src/main/java/com/bsd/say/service/impl/RecordServiceImpl.java index 48438f9..8250673 100644 --- a/src/main/java/com/bsd/say/service/impl/RecordServiceImpl.java +++ b/src/main/java/com/bsd/say/service/impl/RecordServiceImpl.java @@ -92,42 +92,29 @@ public class RecordServiceImpl extends BaseServiceImpl impl if (StringUtils.isNotEmpty(openId)){ //微信端 JSONObject userInfo = weixinService.getUserInfoByOpenId(openId); - logger.info("userInfo:"+userInfo.toString()); + logger.info("userInfo:" + userInfo.toString()); String unionId = userInfo.getString("unionid"); - logger.info("union_id:"+unionId); - Record record = recordMapper.selectOne(Wrappers.lambdaQuery().eq(Record::getUnionId,unionId) - .and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1))); - if (record == null){ - //微信端新用户第一次访问 + logger.info("union_id:" + unionId); + Record record = recordMapper.selectOne(Wrappers.lambdaQuery().eq(Record::getOpenId, openId) + .and(queryWrapper1 -> queryWrapper1.eq(Record::getState, 1))); + //微信端新用户第一次访问 - logger.info("open_id:"+openId); - Record newRecord = new Record(); - if (isOld){ - logger.info("老粉丝"); - newRecord.setFan("老粉丝"); - }else { - newRecord.setFan("新粉丝"); - } - newRecord.setSource(sourceName); - newRecord.setOpenId(openId); - newRecord.setUnionId(unionId); + logger.info("open_id:" + openId); + Record newRecord = new Record(); + newRecord.setSource(sourceName); + newRecord.setUnionId(unionId); // String accessToken = weixin.getString("access_token"); // String userInfoUrl = getWxUserInfoUrl + accessToken + "&openid=" + openId + "&lang=zh_CN" ; // String userString = HttpRequestUtils.sendGet(userInfoUrl); // JSONObject userJson = JSONObject.parseObject(userString); - String nickName = userInfo.getString("nickname"); - newRecord.setNickName(nickName); - newRecord.setCreateDateTime(new Date()); - newRecord.setUpdateDateTime(new Date()); - recordMapper.insert(newRecord); - }else { - //不是第一次访问 - logger.info("unionId" + unionId); - /** - * 更新用户信息之类的 - */ - } - }else { + String nickName = userInfo.getString("nickname"); + newRecord.setNickName(nickName); + newRecord.setUpdateDateTime(new Date()); + recordMapper.updateById(newRecord); + //不是第一次访问 + logger.info("unionId" + unionId); + } else { + logger.info("非微信端访问"); //非微信端待确认 } }