1.record up

2.通过openId获取用户信息
3.是否关注公众号
master
ck 5 years ago
parent 1e877f4dc0
commit f7e460727f

@ -61,4 +61,19 @@ public class UsersController extends BaseController<UsersService, Users>{
return ajaxResult;
}
@RequestMapping(value = "/is-subscribe")
public AjaxResult isSubscribe(@RequestBody AjaxRequest ajaxRequest){
AjaxResult ajaxResult = new AjaxResult();
try {
ajaxResult = usersService.isSubscribe(ajaxRequest);
} catch (Exception e) {
e.printStackTrace();
String errMsg = e.getMessage() != null ? e.getMessage() : "操作失败";
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg(errMsg);
}
return ajaxResult;
}
}

@ -6,5 +6,5 @@ import com.bsd.say.entities.Users;
public interface UsersService extends BaseService<Users>{
AjaxResult sendNote(AjaxRequest ajaxRequest);
AjaxResult isSubscribe(AjaxRequest ajaxRequest);
}

@ -14,7 +14,9 @@ import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.mapper.UsersMapper;
import com.bsd.say.service.AwardListService;
import com.bsd.say.service.CouponService;
import com.bsd.say.util.LogUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
@ -40,12 +42,16 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
private CouponMapper couponMapper;
@Resource
private RecordMapper recordMapper;
@Autowired
WeixinService weixinService;
@Override
public AwardListMapper getBaseMapper() {
return this.awardListMapper;
}
private Logger logger = LogUtils.getBussinessLogger();
/**
*
* @param ajaxRequest
@ -67,7 +73,8 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
ajaxResult.setRetmsg("CODE MISSING");
return ajaxResult;
} else {
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
AwardList maxIdAward = awardListMapper.selectByMaxId();
@ -116,7 +123,8 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
ajaxResult.setRetmsg("CODE MISSING");
return ajaxResult;
} else {
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
@ -184,7 +192,8 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
}else {
if (noteCode.equals(redisTemplate.opsForValue().get(phone))){
//验证成功
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
@ -250,7 +259,8 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
ajaxResult.setRetmsg("CODE MISSING");
return ajaxResult;
}else {
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){

@ -11,8 +11,10 @@ import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.mapper.UsersMapper;
import com.bsd.say.service.CouponService;
import com.bsd.say.util.HttpRequestUtils;
import com.bsd.say.util.LogUtils;
import com.bsd.say.util.MD5Utils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
@ -48,6 +50,10 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
public CouponMapper getBaseMapper() {
return this.couponMapper;
}
@Autowired
WeixinService weixinService;
private Logger logger = LogUtils.getBussinessLogger();
/**
*
@ -96,7 +102,8 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
Coupon coupon = new Coupon();
Users users;
if (isAward){
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
users.setPhone(phone);
@ -119,7 +126,8 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
}else {
//来源微信
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
@ -177,7 +185,8 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
Users users ;
Boolean isWechat = true;
if (StringUtils.isNotEmpty(code)){
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
users= usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
}else {
@ -189,7 +198,8 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
//新会员直接创,肯定没领取过券
Users newUsers = new Users();
if (isWechat){
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
newUsers.setUnionId(unionId);
}else {
newUsers.setPhone(phone);

@ -9,10 +9,14 @@ import com.bsd.say.entities.Record;
import com.bsd.say.mapper.LoveLetterMapper;
import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.service.LoveLetterService;
import com.bsd.say.util.HttpRequestUtils;
import com.bsd.say.util.LogUtils;
import com.bsd.say.util.RandomUtils;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -21,15 +25,19 @@ import java.util.Date;
@Service("loveLetterService")
@Transactional
public class LoveLetterServiceImpl extends BaseServiceImpl<LoveLetterMapper, LoveLetter> implements LoveLetterService {
@Value("${wechat.getWxUserInfoUrl}")
private String getWxUserInfoUrl;
@Autowired
protected LoveLetterMapper loveLetterMapper;
@Autowired
private RecordMapper recordMapper;
@Autowired
private WeixinService weixinService;
@Override
public LoveLetterMapper getBaseMapper() {
return this.loveLetterMapper;
}
private Logger logger = LogUtils.getBussinessLogger();
/**
*
* @param ajaxRequest
@ -77,7 +85,8 @@ public class LoveLetterServiceImpl extends BaseServiceImpl<LoveLetterMapper, Lov
}
if (StringUtils.isNotEmpty(code)){
//来源于微信
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Record record = recordMapper.selectOne(Wrappers.<Record>lambdaQuery().eq(Record::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1)));
int createLetterTimes = record.getCreateLetterTimes();
@ -133,27 +142,29 @@ public class LoveLetterServiceImpl extends BaseServiceImpl<LoveLetterMapper, Lov
}
if (StringUtils.isNotEmpty(code)){
//来源于微信
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Record record = recordMapper.selectOne(Wrappers.<Record>lambdaQuery().eq(Record::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1)));
if (record == null){
//新用户第一次收到情书礼物
String openId = "456";
JSONObject weixin = weixinService.getAccessToken(code);
String openId = weixin.getString("openid");
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 = userJson.getString("nickname");
Record record1 = new Record();
record1.setSource("微信");
record1.setUnionId(unionId);
record1.setOpenId(openId);
/**
*
*/
record1.setNickName(nickName);
record1.setCreateDateTime(new Date());
record1.setUpdateDateTime(new Date());
record1.setReceiveLetterTimes(1);
recordMapper.insert(record1);
}else {
/**
*
*/
int receiveLetterTimes = record.getReceiveLetterTimes();
record.setReceiveLetterTimes(receiveLetterTimes + 1);
record.setUpdateDateTime(new Date());

@ -8,9 +8,11 @@ import com.bsd.say.entities.Record;
import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.mapper.UsersMapper;
import com.bsd.say.service.RecordService;
import com.bsd.say.util.HttpRequestUtils;
import com.bsd.say.util.LogUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -20,11 +22,16 @@ import java.util.Date;
@Service("recordService")
@Transactional
public class RecordServiceImpl extends BaseServiceImpl<RecordMapper,Record> implements RecordService {
@Value("${wechat.getWxUserInfoUrl}")
private String getWxUserInfoUrl;
@Resource
private RecordMapper recordMapper;
private Logger logger = LogUtils.getBussinessLogger();
@Resource
WeixinService weixinService;
@Override
public RecordMapper getBaseMapper() {
return this.recordMapper;
@ -49,18 +56,24 @@ public class RecordServiceImpl extends BaseServiceImpl<RecordMapper,Record> impl
String code = data.getString("code");
if (StringUtils.isNotEmpty(code)){
//微信端
String unionId = "123";
String unionId = weixinService.getUnionId(code);
logger.info("union_id:"+unionId);
Record record = recordMapper.selectOne(Wrappers.<Record>lambdaQuery().eq(Record::getUnionId,unionId)
.and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1)));
if (record == null){
//微信端新用户第一次访问
String openId = "456";
JSONObject weixin = weixinService.getAccessToken(code);
String openId = weixin.getString("openid");
logger.info("open_id:"+openId);
Record newRecord = new Record();
newRecord.setOpenId(openId);
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 = userJson.getString("nickname");
newRecord.setNickName(nickName);
newRecord.setCreateDateTime(new Date());
newRecord.setUpdateDateTime(new Date());
newRecord.setSource("微信");

@ -32,8 +32,12 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper,Users> impleme
private String sendSource;
@Value("${bsd.verifySMSCodeUrl}")
private String verifySMSCodeUrl;
@Value("${wechat.getWxUserInfoUrl}")
private String getWxUserInfoUrl;
@Autowired
protected UsersMapper usersMapper;
@Autowired
private WeixinService weixinService;
@Override
public UsersMapper getBaseMapper() {
@ -82,4 +86,37 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper,Users> impleme
}
}
@Override
public AjaxResult isSubscribe(AjaxRequest ajaxRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
if (data == null){
ajaxResult.setRetmsg("DATA MISSING");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}else {
String code = data.getString("code");
if (StringUtils.isEmpty(code)){
ajaxResult.setRetmsg("CODE MISSING");
ajaxResult.setRetcode(AjaxResult.FAILED);
return ajaxResult;
}else {
JSONObject weixin = weixinService.getAccessToken(code);
String openId = weixin.getString("openid");
String accessToken = weixin.getString("access_token");
String userInfoUrl = getWxUserInfoUrl + accessToken + "&openid=" + openId + "&lang=zh_CN" ;
JSONObject userinfo = JSONObject.parseObject(HttpRequestUtils.sendGet(userInfoUrl));
int subscribe = userinfo.getInteger("subscribe");
if (subscribe == 1){
ajaxResult.setData(1);
ajaxResult.setRetmsg("已关注公众号");
}else {
ajaxResult.setData(0);
ajaxResult.setRetmsg("未关注公众号");
}
return ajaxResult;
}
}
}
}

@ -41,6 +41,8 @@ public class WeixinService extends WxOpenServiceImpl {
private String getAccessTokenUrl;
@Value("${wechat.getUnionIdUrl}")
private String getUnionIdUrl;
@Value("${wechat.getWxUserInfoUrl}")
private String getWxUserInfoUrl;
@Resource
private RedisTemplate redisTemplate;
@ -120,4 +122,5 @@ public class WeixinService extends WxOpenServiceImpl {
String unionId = resultJson.getString("unionid");
return unionId;
}
}

@ -52,6 +52,8 @@ wechat:
getComponentAccessTokenUrl: https://api.weixin.qq.com/cgi-bin/component/api_component_token
getAccessTokenUrl: https://api.weixin.qq.com/sns/oauth2/component/access_token?appid=
getUnionIdUrl: https://api.weixin.qq.com/sns/userinfo?access_token=
getWxUserInfoUrl: https://api.weixin.qq.com/cgi-bin/user/info?access_token=
bsd:
tokenkey: BOSIDENG

Loading…
Cancel
Save